package net.maylander.bfcpublog.bfwb.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.xtext.parsetree.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import net.maylander.bfcpublog.bfwb.services.BrainfuckLanguageGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalBrainfuckLanguageParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'+'", "'-'", "'<'", "'>'", "','", "'.'", "'bfprogram'", "'{'", "'}'", "'symbols:'", "'macros:'", "'symbol'", "'='", "'#region'", "'macro'", "'('", "')'", "'param'", "'*'", "'['", "']'"
    };
    public static final int RULE_ID=4;
    public static final int RULE_STRING=6;
    public static final int RULE_ANY_OTHER=10;
    public static final int RULE_INT=5;
    public static final int RULE_WS=9;
    public static final int RULE_SL_COMMENT=8;
    public static final int EOF=-1;
    public static final int RULE_ML_COMMENT=7;

        public InternalBrainfuckLanguageParser(TokenStream input) {
            super(input);
        }
        

    public String[] getTokenNames() { return tokenNames; }
    public String getGrammarFileName() { return "../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g"; }


     
     	private BrainfuckLanguageGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(BrainfuckLanguageGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start entryRuleBrainfuckProgram
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:61:1: entryRuleBrainfuckProgram : ruleBrainfuckProgram EOF ;
    public final void entryRuleBrainfuckProgram() throws RecognitionException {
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:62:1: ( ruleBrainfuckProgram EOF )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:63:1: ruleBrainfuckProgram EOF
            {
             before(grammarAccess.getBrainfuckProgramRule()); 
            pushFollow(FOLLOW_ruleBrainfuckProgram_in_entryRuleBrainfuckProgram61);
            ruleBrainfuckProgram();
            _fsp--;

             after(grammarAccess.getBrainfuckProgramRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleBrainfuckProgram68); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleBrainfuckProgram


    // $ANTLR start ruleBrainfuckProgram
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:70:1: ruleBrainfuckProgram : ( ( rule__BrainfuckProgram__Group__0 ) ) ;
    public final void ruleBrainfuckProgram() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:74:2: ( ( ( rule__BrainfuckProgram__Group__0 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:75:1: ( ( rule__BrainfuckProgram__Group__0 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:75:1: ( ( rule__BrainfuckProgram__Group__0 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:76:1: ( rule__BrainfuckProgram__Group__0 )
            {
             before(grammarAccess.getBrainfuckProgramAccess().getGroup()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:77:1: ( rule__BrainfuckProgram__Group__0 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:77:2: rule__BrainfuckProgram__Group__0
            {
            pushFollow(FOLLOW_rule__BrainfuckProgram__Group__0_in_ruleBrainfuckProgram94);
            rule__BrainfuckProgram__Group__0();
            _fsp--;


            }

             after(grammarAccess.getBrainfuckProgramAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleBrainfuckProgram


    // $ANTLR start entryRuleSymbolDef
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:89:1: entryRuleSymbolDef : ruleSymbolDef EOF ;
    public final void entryRuleSymbolDef() throws RecognitionException {
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:90:1: ( ruleSymbolDef EOF )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:91:1: ruleSymbolDef EOF
            {
             before(grammarAccess.getSymbolDefRule()); 
            pushFollow(FOLLOW_ruleSymbolDef_in_entryRuleSymbolDef121);
            ruleSymbolDef();
            _fsp--;

             after(grammarAccess.getSymbolDefRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSymbolDef128); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleSymbolDef


    // $ANTLR start ruleSymbolDef
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:98:1: ruleSymbolDef : ( ( rule__SymbolDef__Group__0 ) ) ;
    public final void ruleSymbolDef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:102:2: ( ( ( rule__SymbolDef__Group__0 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:103:1: ( ( rule__SymbolDef__Group__0 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:103:1: ( ( rule__SymbolDef__Group__0 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:104:1: ( rule__SymbolDef__Group__0 )
            {
             before(grammarAccess.getSymbolDefAccess().getGroup()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:105:1: ( rule__SymbolDef__Group__0 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:105:2: rule__SymbolDef__Group__0
            {
            pushFollow(FOLLOW_rule__SymbolDef__Group__0_in_ruleSymbolDef154);
            rule__SymbolDef__Group__0();
            _fsp--;


            }

             after(grammarAccess.getSymbolDefAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleSymbolDef


    // $ANTLR start entryRuleAbstractMacroDef
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:117:1: entryRuleAbstractMacroDef : ruleAbstractMacroDef EOF ;
    public final void entryRuleAbstractMacroDef() throws RecognitionException {
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:118:1: ( ruleAbstractMacroDef EOF )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:119:1: ruleAbstractMacroDef EOF
            {
             before(grammarAccess.getAbstractMacroDefRule()); 
            pushFollow(FOLLOW_ruleAbstractMacroDef_in_entryRuleAbstractMacroDef181);
            ruleAbstractMacroDef();
            _fsp--;

             after(grammarAccess.getAbstractMacroDefRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAbstractMacroDef188); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleAbstractMacroDef


    // $ANTLR start ruleAbstractMacroDef
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:126:1: ruleAbstractMacroDef : ( ( rule__AbstractMacroDef__Alternatives ) ) ;
    public final void ruleAbstractMacroDef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:130:2: ( ( ( rule__AbstractMacroDef__Alternatives ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:131:1: ( ( rule__AbstractMacroDef__Alternatives ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:131:1: ( ( rule__AbstractMacroDef__Alternatives ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:132:1: ( rule__AbstractMacroDef__Alternatives )
            {
             before(grammarAccess.getAbstractMacroDefAccess().getAlternatives()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:133:1: ( rule__AbstractMacroDef__Alternatives )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:133:2: rule__AbstractMacroDef__Alternatives
            {
            pushFollow(FOLLOW_rule__AbstractMacroDef__Alternatives_in_ruleAbstractMacroDef214);
            rule__AbstractMacroDef__Alternatives();
            _fsp--;


            }

             after(grammarAccess.getAbstractMacroDefAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleAbstractMacroDef


    // $ANTLR start entryRuleRegion
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:145:1: entryRuleRegion : ruleRegion EOF ;
    public final void entryRuleRegion() throws RecognitionException {
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:146:1: ( ruleRegion EOF )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:147:1: ruleRegion EOF
            {
             before(grammarAccess.getRegionRule()); 
            pushFollow(FOLLOW_ruleRegion_in_entryRuleRegion241);
            ruleRegion();
            _fsp--;

             after(grammarAccess.getRegionRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRegion248); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleRegion


    // $ANTLR start ruleRegion
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:154:1: ruleRegion : ( ( rule__Region__Group__0 ) ) ;
    public final void ruleRegion() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:158:2: ( ( ( rule__Region__Group__0 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:159:1: ( ( rule__Region__Group__0 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:159:1: ( ( rule__Region__Group__0 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:160:1: ( rule__Region__Group__0 )
            {
             before(grammarAccess.getRegionAccess().getGroup()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:161:1: ( rule__Region__Group__0 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:161:2: rule__Region__Group__0
            {
            pushFollow(FOLLOW_rule__Region__Group__0_in_ruleRegion274);
            rule__Region__Group__0();
            _fsp--;


            }

             after(grammarAccess.getRegionAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleRegion


    // $ANTLR start entryRuleMacroDef
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:173:1: entryRuleMacroDef : ruleMacroDef EOF ;
    public final void entryRuleMacroDef() throws RecognitionException {
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:174:1: ( ruleMacroDef EOF )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:175:1: ruleMacroDef EOF
            {
             before(grammarAccess.getMacroDefRule()); 
            pushFollow(FOLLOW_ruleMacroDef_in_entryRuleMacroDef301);
            ruleMacroDef();
            _fsp--;

             after(grammarAccess.getMacroDefRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMacroDef308); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleMacroDef


    // $ANTLR start ruleMacroDef
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:182:1: ruleMacroDef : ( ( rule__MacroDef__Group__0 ) ) ;
    public final void ruleMacroDef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:186:2: ( ( ( rule__MacroDef__Group__0 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:187:1: ( ( rule__MacroDef__Group__0 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:187:1: ( ( rule__MacroDef__Group__0 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:188:1: ( rule__MacroDef__Group__0 )
            {
             before(grammarAccess.getMacroDefAccess().getGroup()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:189:1: ( rule__MacroDef__Group__0 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:189:2: rule__MacroDef__Group__0
            {
            pushFollow(FOLLOW_rule__MacroDef__Group__0_in_ruleMacroDef334);
            rule__MacroDef__Group__0();
            _fsp--;


            }

             after(grammarAccess.getMacroDefAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleMacroDef


    // $ANTLR start entryRuleParamDef
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:201:1: entryRuleParamDef : ruleParamDef EOF ;
    public final void entryRuleParamDef() throws RecognitionException {
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:202:1: ( ruleParamDef EOF )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:203:1: ruleParamDef EOF
            {
             before(grammarAccess.getParamDefRule()); 
            pushFollow(FOLLOW_ruleParamDef_in_entryRuleParamDef361);
            ruleParamDef();
            _fsp--;

             after(grammarAccess.getParamDefRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleParamDef368); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleParamDef


    // $ANTLR start ruleParamDef
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:210:1: ruleParamDef : ( ( rule__ParamDef__Group__0 ) ) ;
    public final void ruleParamDef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:214:2: ( ( ( rule__ParamDef__Group__0 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:215:1: ( ( rule__ParamDef__Group__0 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:215:1: ( ( rule__ParamDef__Group__0 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:216:1: ( rule__ParamDef__Group__0 )
            {
             before(grammarAccess.getParamDefAccess().getGroup()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:217:1: ( rule__ParamDef__Group__0 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:217:2: rule__ParamDef__Group__0
            {
            pushFollow(FOLLOW_rule__ParamDef__Group__0_in_ruleParamDef394);
            rule__ParamDef__Group__0();
            _fsp--;


            }

             after(grammarAccess.getParamDefAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleParamDef


    // $ANTLR start entryRuleAbstractStmt
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:229:1: entryRuleAbstractStmt : ruleAbstractStmt EOF ;
    public final void entryRuleAbstractStmt() throws RecognitionException {
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:230:1: ( ruleAbstractStmt EOF )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:231:1: ruleAbstractStmt EOF
            {
             before(grammarAccess.getAbstractStmtRule()); 
            pushFollow(FOLLOW_ruleAbstractStmt_in_entryRuleAbstractStmt421);
            ruleAbstractStmt();
            _fsp--;

             after(grammarAccess.getAbstractStmtRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAbstractStmt428); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleAbstractStmt


    // $ANTLR start ruleAbstractStmt
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:238:1: ruleAbstractStmt : ( ( rule__AbstractStmt__Group__0 ) ) ;
    public final void ruleAbstractStmt() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:242:2: ( ( ( rule__AbstractStmt__Group__0 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:243:1: ( ( rule__AbstractStmt__Group__0 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:243:1: ( ( rule__AbstractStmt__Group__0 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:244:1: ( rule__AbstractStmt__Group__0 )
            {
             before(grammarAccess.getAbstractStmtAccess().getGroup()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:245:1: ( rule__AbstractStmt__Group__0 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:245:2: rule__AbstractStmt__Group__0
            {
            pushFollow(FOLLOW_rule__AbstractStmt__Group__0_in_ruleAbstractStmt454);
            rule__AbstractStmt__Group__0();
            _fsp--;


            }

             after(grammarAccess.getAbstractStmtAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleAbstractStmt


    // $ANTLR start entryRuleSimpleStmt
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:257:1: entryRuleSimpleStmt : ruleSimpleStmt EOF ;
    public final void entryRuleSimpleStmt() throws RecognitionException {
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:258:1: ( ruleSimpleStmt EOF )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:259:1: ruleSimpleStmt EOF
            {
             before(grammarAccess.getSimpleStmtRule()); 
            pushFollow(FOLLOW_ruleSimpleStmt_in_entryRuleSimpleStmt481);
            ruleSimpleStmt();
            _fsp--;

             after(grammarAccess.getSimpleStmtRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSimpleStmt488); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleSimpleStmt


    // $ANTLR start ruleSimpleStmt
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:266:1: ruleSimpleStmt : ( ( rule__SimpleStmt__KindAssignment ) ) ;
    public final void ruleSimpleStmt() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:270:2: ( ( ( rule__SimpleStmt__KindAssignment ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:271:1: ( ( rule__SimpleStmt__KindAssignment ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:271:1: ( ( rule__SimpleStmt__KindAssignment ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:272:1: ( rule__SimpleStmt__KindAssignment )
            {
             before(grammarAccess.getSimpleStmtAccess().getKindAssignment()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:273:1: ( rule__SimpleStmt__KindAssignment )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:273:2: rule__SimpleStmt__KindAssignment
            {
            pushFollow(FOLLOW_rule__SimpleStmt__KindAssignment_in_ruleSimpleStmt514);
            rule__SimpleStmt__KindAssignment();
            _fsp--;


            }

             after(grammarAccess.getSimpleStmtAccess().getKindAssignment()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleSimpleStmt


    // $ANTLR start entryRuleLoopStmt
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:285:1: entryRuleLoopStmt : ruleLoopStmt EOF ;
    public final void entryRuleLoopStmt() throws RecognitionException {
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:286:1: ( ruleLoopStmt EOF )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:287:1: ruleLoopStmt EOF
            {
             before(grammarAccess.getLoopStmtRule()); 
            pushFollow(FOLLOW_ruleLoopStmt_in_entryRuleLoopStmt541);
            ruleLoopStmt();
            _fsp--;

             after(grammarAccess.getLoopStmtRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleLoopStmt548); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleLoopStmt


    // $ANTLR start ruleLoopStmt
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:294:1: ruleLoopStmt : ( ( rule__LoopStmt__Group__0 ) ) ;
    public final void ruleLoopStmt() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:298:2: ( ( ( rule__LoopStmt__Group__0 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:299:1: ( ( rule__LoopStmt__Group__0 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:299:1: ( ( rule__LoopStmt__Group__0 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:300:1: ( rule__LoopStmt__Group__0 )
            {
             before(grammarAccess.getLoopStmtAccess().getGroup()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:301:1: ( rule__LoopStmt__Group__0 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:301:2: rule__LoopStmt__Group__0
            {
            pushFollow(FOLLOW_rule__LoopStmt__Group__0_in_ruleLoopStmt574);
            rule__LoopStmt__Group__0();
            _fsp--;


            }

             after(grammarAccess.getLoopStmtAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleLoopStmt


    // $ANTLR start entryRuleMacroCall
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:313:1: entryRuleMacroCall : ruleMacroCall EOF ;
    public final void entryRuleMacroCall() throws RecognitionException {
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:314:1: ( ruleMacroCall EOF )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:315:1: ruleMacroCall EOF
            {
             before(grammarAccess.getMacroCallRule()); 
            pushFollow(FOLLOW_ruleMacroCall_in_entryRuleMacroCall601);
            ruleMacroCall();
            _fsp--;

             after(grammarAccess.getMacroCallRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMacroCall608); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleMacroCall


    // $ANTLR start ruleMacroCall
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:322:1: ruleMacroCall : ( ( rule__MacroCall__Group__0 ) ) ;
    public final void ruleMacroCall() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:326:2: ( ( ( rule__MacroCall__Group__0 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:327:1: ( ( rule__MacroCall__Group__0 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:327:1: ( ( rule__MacroCall__Group__0 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:328:1: ( rule__MacroCall__Group__0 )
            {
             before(grammarAccess.getMacroCallAccess().getGroup()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:329:1: ( rule__MacroCall__Group__0 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:329:2: rule__MacroCall__Group__0
            {
            pushFollow(FOLLOW_rule__MacroCall__Group__0_in_ruleMacroCall634);
            rule__MacroCall__Group__0();
            _fsp--;


            }

             after(grammarAccess.getMacroCallAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleMacroCall


    // $ANTLR start entryRuleBfValue
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:341:1: entryRuleBfValue : ruleBfValue EOF ;
    public final void entryRuleBfValue() throws RecognitionException {
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:342:1: ( ruleBfValue EOF )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:343:1: ruleBfValue EOF
            {
             before(grammarAccess.getBfValueRule()); 
            pushFollow(FOLLOW_ruleBfValue_in_entryRuleBfValue661);
            ruleBfValue();
            _fsp--;

             after(grammarAccess.getBfValueRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleBfValue668); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleBfValue


    // $ANTLR start ruleBfValue
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:350:1: ruleBfValue : ( ( rule__BfValue__Alternatives ) ) ;
    public final void ruleBfValue() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:354:2: ( ( ( rule__BfValue__Alternatives ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:355:1: ( ( rule__BfValue__Alternatives ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:355:1: ( ( rule__BfValue__Alternatives ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:356:1: ( rule__BfValue__Alternatives )
            {
             before(grammarAccess.getBfValueAccess().getAlternatives()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:357:1: ( rule__BfValue__Alternatives )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:357:2: rule__BfValue__Alternatives
            {
            pushFollow(FOLLOW_rule__BfValue__Alternatives_in_ruleBfValue694);
            rule__BfValue__Alternatives();
            _fsp--;


            }

             after(grammarAccess.getBfValueAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleBfValue


    // $ANTLR start entryRuleSignedInt
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:369:1: entryRuleSignedInt : ruleSignedInt EOF ;
    public final void entryRuleSignedInt() throws RecognitionException {
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:370:1: ( ruleSignedInt EOF )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:371:1: ruleSignedInt EOF
            {
             before(grammarAccess.getSignedIntRule()); 
            pushFollow(FOLLOW_ruleSignedInt_in_entryRuleSignedInt721);
            ruleSignedInt();
            _fsp--;

             after(grammarAccess.getSignedIntRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSignedInt728); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleSignedInt


    // $ANTLR start ruleSignedInt
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:378:1: ruleSignedInt : ( ( rule__SignedInt__Group__0 ) ) ;
    public final void ruleSignedInt() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:382:2: ( ( ( rule__SignedInt__Group__0 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:383:1: ( ( rule__SignedInt__Group__0 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:383:1: ( ( rule__SignedInt__Group__0 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:384:1: ( rule__SignedInt__Group__0 )
            {
             before(grammarAccess.getSignedIntAccess().getGroup()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:385:1: ( rule__SignedInt__Group__0 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:385:2: rule__SignedInt__Group__0
            {
            pushFollow(FOLLOW_rule__SignedInt__Group__0_in_ruleSignedInt754);
            rule__SignedInt__Group__0();
            _fsp--;


            }

             after(grammarAccess.getSignedIntAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleSignedInt


    // $ANTLR start entryRuleBlockStmt
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:399:1: entryRuleBlockStmt : ruleBlockStmt EOF ;
    public final void entryRuleBlockStmt() throws RecognitionException {
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:400:1: ( ruleBlockStmt EOF )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:401:1: ruleBlockStmt EOF
            {
             before(grammarAccess.getBlockStmtRule()); 
            pushFollow(FOLLOW_ruleBlockStmt_in_entryRuleBlockStmt783);
            ruleBlockStmt();
            _fsp--;

             after(grammarAccess.getBlockStmtRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleBlockStmt790); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleBlockStmt


    // $ANTLR start ruleBlockStmt
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:408:1: ruleBlockStmt : ( ( rule__BlockStmt__Group__0 ) ) ;
    public final void ruleBlockStmt() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:412:2: ( ( ( rule__BlockStmt__Group__0 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:413:1: ( ( rule__BlockStmt__Group__0 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:413:1: ( ( rule__BlockStmt__Group__0 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:414:1: ( rule__BlockStmt__Group__0 )
            {
             before(grammarAccess.getBlockStmtAccess().getGroup()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:415:1: ( rule__BlockStmt__Group__0 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:415:2: rule__BlockStmt__Group__0
            {
            pushFollow(FOLLOW_rule__BlockStmt__Group__0_in_ruleBlockStmt816);
            rule__BlockStmt__Group__0();
            _fsp--;


            }

             after(grammarAccess.getBlockStmtAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleBlockStmt


    // $ANTLR start ruleSimpleStmtKind
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:428:1: ruleSimpleStmtKind : ( ( rule__SimpleStmtKind__Alternatives ) ) ;
    public final void ruleSimpleStmtKind() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:432:1: ( ( ( rule__SimpleStmtKind__Alternatives ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:433:1: ( ( rule__SimpleStmtKind__Alternatives ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:433:1: ( ( rule__SimpleStmtKind__Alternatives ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:434:1: ( rule__SimpleStmtKind__Alternatives )
            {
             before(grammarAccess.getSimpleStmtKindAccess().getAlternatives()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:435:1: ( rule__SimpleStmtKind__Alternatives )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:435:2: rule__SimpleStmtKind__Alternatives
            {
            pushFollow(FOLLOW_rule__SimpleStmtKind__Alternatives_in_ruleSimpleStmtKind853);
            rule__SimpleStmtKind__Alternatives();
            _fsp--;


            }

             after(grammarAccess.getSimpleStmtKindAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleSimpleStmtKind


    // $ANTLR start rule__AbstractMacroDef__Alternatives
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:446:1: rule__AbstractMacroDef__Alternatives : ( ( ruleMacroDef ) | ( ruleRegion ) );
    public final void rule__AbstractMacroDef__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:450:1: ( ( ruleMacroDef ) | ( ruleRegion ) )
            int alt1=2;
            int LA1_0 = input.LA(1);

            if ( (LA1_0==25) ) {
                alt1=1;
            }
            else if ( (LA1_0==24) ) {
                alt1=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("446:1: rule__AbstractMacroDef__Alternatives : ( ( ruleMacroDef ) | ( ruleRegion ) );", 1, 0, input);

                throw nvae;
            }
            switch (alt1) {
                case 1 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:451:1: ( ruleMacroDef )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:451:1: ( ruleMacroDef )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:452:1: ruleMacroDef
                    {
                     before(grammarAccess.getAbstractMacroDefAccess().getMacroDefParserRuleCall_0()); 
                    pushFollow(FOLLOW_ruleMacroDef_in_rule__AbstractMacroDef__Alternatives888);
                    ruleMacroDef();
                    _fsp--;

                     after(grammarAccess.getAbstractMacroDefAccess().getMacroDefParserRuleCall_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:457:6: ( ruleRegion )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:457:6: ( ruleRegion )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:458:1: ruleRegion
                    {
                     before(grammarAccess.getAbstractMacroDefAccess().getRegionParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleRegion_in_rule__AbstractMacroDef__Alternatives905);
                    ruleRegion();
                    _fsp--;

                     after(grammarAccess.getAbstractMacroDefAccess().getRegionParserRuleCall_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__AbstractMacroDef__Alternatives


    // $ANTLR start rule__AbstractStmt__Alternatives_0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:468:1: rule__AbstractStmt__Alternatives_0 : ( ( ruleSimpleStmt ) | ( ruleLoopStmt ) | ( ruleMacroCall ) | ( ruleBlockStmt ) );
    public final void rule__AbstractStmt__Alternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:472:1: ( ( ruleSimpleStmt ) | ( ruleLoopStmt ) | ( ruleMacroCall ) | ( ruleBlockStmt ) )
            int alt2=4;
            switch ( input.LA(1) ) {
            case 11:
            case 12:
            case 13:
            case 14:
            case 15:
            case 16:
                {
                alt2=1;
                }
                break;
            case 30:
                {
                alt2=2;
                }
                break;
            case RULE_ID:
                {
                alt2=3;
                }
                break;
            case 18:
                {
                alt2=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("468:1: rule__AbstractStmt__Alternatives_0 : ( ( ruleSimpleStmt ) | ( ruleLoopStmt ) | ( ruleMacroCall ) | ( ruleBlockStmt ) );", 2, 0, input);

                throw nvae;
            }

            switch (alt2) {
                case 1 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:473:1: ( ruleSimpleStmt )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:473:1: ( ruleSimpleStmt )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:474:1: ruleSimpleStmt
                    {
                     before(grammarAccess.getAbstractStmtAccess().getSimpleStmtParserRuleCall_0_0()); 
                    pushFollow(FOLLOW_ruleSimpleStmt_in_rule__AbstractStmt__Alternatives_0937);
                    ruleSimpleStmt();
                    _fsp--;

                     after(grammarAccess.getAbstractStmtAccess().getSimpleStmtParserRuleCall_0_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:479:6: ( ruleLoopStmt )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:479:6: ( ruleLoopStmt )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:480:1: ruleLoopStmt
                    {
                     before(grammarAccess.getAbstractStmtAccess().getLoopStmtParserRuleCall_0_1()); 
                    pushFollow(FOLLOW_ruleLoopStmt_in_rule__AbstractStmt__Alternatives_0954);
                    ruleLoopStmt();
                    _fsp--;

                     after(grammarAccess.getAbstractStmtAccess().getLoopStmtParserRuleCall_0_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:485:6: ( ruleMacroCall )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:485:6: ( ruleMacroCall )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:486:1: ruleMacroCall
                    {
                     before(grammarAccess.getAbstractStmtAccess().getMacroCallParserRuleCall_0_2()); 
                    pushFollow(FOLLOW_ruleMacroCall_in_rule__AbstractStmt__Alternatives_0971);
                    ruleMacroCall();
                    _fsp--;

                     after(grammarAccess.getAbstractStmtAccess().getMacroCallParserRuleCall_0_2()); 

                    }


                    }
                    break;
                case 4 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:491:6: ( ruleBlockStmt )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:491:6: ( ruleBlockStmt )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:492:1: ruleBlockStmt
                    {
                     before(grammarAccess.getAbstractStmtAccess().getBlockStmtParserRuleCall_0_3()); 
                    pushFollow(FOLLOW_ruleBlockStmt_in_rule__AbstractStmt__Alternatives_0988);
                    ruleBlockStmt();
                    _fsp--;

                     after(grammarAccess.getAbstractStmtAccess().getBlockStmtParserRuleCall_0_3()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__AbstractStmt__Alternatives_0


    // $ANTLR start rule__BfValue__Alternatives
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:502:1: rule__BfValue__Alternatives : ( ( ( rule__BfValue__ValAssignment_0 ) ) | ( ( rule__BfValue__RefAssignment_1 ) ) );
    public final void rule__BfValue__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:506:1: ( ( ( rule__BfValue__ValAssignment_0 ) ) | ( ( rule__BfValue__RefAssignment_1 ) ) )
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==RULE_INT||(LA3_0>=11 && LA3_0<=12)) ) {
                alt3=1;
            }
            else if ( (LA3_0==RULE_ID) ) {
                alt3=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("502:1: rule__BfValue__Alternatives : ( ( ( rule__BfValue__ValAssignment_0 ) ) | ( ( rule__BfValue__RefAssignment_1 ) ) );", 3, 0, input);

                throw nvae;
            }
            switch (alt3) {
                case 1 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:507:1: ( ( rule__BfValue__ValAssignment_0 ) )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:507:1: ( ( rule__BfValue__ValAssignment_0 ) )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:508:1: ( rule__BfValue__ValAssignment_0 )
                    {
                     before(grammarAccess.getBfValueAccess().getValAssignment_0()); 
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:509:1: ( rule__BfValue__ValAssignment_0 )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:509:2: rule__BfValue__ValAssignment_0
                    {
                    pushFollow(FOLLOW_rule__BfValue__ValAssignment_0_in_rule__BfValue__Alternatives1020);
                    rule__BfValue__ValAssignment_0();
                    _fsp--;


                    }

                     after(grammarAccess.getBfValueAccess().getValAssignment_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:513:6: ( ( rule__BfValue__RefAssignment_1 ) )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:513:6: ( ( rule__BfValue__RefAssignment_1 ) )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:514:1: ( rule__BfValue__RefAssignment_1 )
                    {
                     before(grammarAccess.getBfValueAccess().getRefAssignment_1()); 
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:515:1: ( rule__BfValue__RefAssignment_1 )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:515:2: rule__BfValue__RefAssignment_1
                    {
                    pushFollow(FOLLOW_rule__BfValue__RefAssignment_1_in_rule__BfValue__Alternatives1038);
                    rule__BfValue__RefAssignment_1();
                    _fsp--;


                    }

                     after(grammarAccess.getBfValueAccess().getRefAssignment_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BfValue__Alternatives


    // $ANTLR start rule__SignedInt__SignAlternatives_0_0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:524:1: rule__SignedInt__SignAlternatives_0_0 : ( ( '+' ) | ( '-' ) );
    public final void rule__SignedInt__SignAlternatives_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:528:1: ( ( '+' ) | ( '-' ) )
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==11) ) {
                alt4=1;
            }
            else if ( (LA4_0==12) ) {
                alt4=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("524:1: rule__SignedInt__SignAlternatives_0_0 : ( ( '+' ) | ( '-' ) );", 4, 0, input);

                throw nvae;
            }
            switch (alt4) {
                case 1 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:529:1: ( '+' )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:529:1: ( '+' )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:530:1: '+'
                    {
                     before(grammarAccess.getSignedIntAccess().getSignPlusSignKeyword_0_0_0()); 
                    match(input,11,FOLLOW_11_in_rule__SignedInt__SignAlternatives_0_01072); 
                     after(grammarAccess.getSignedIntAccess().getSignPlusSignKeyword_0_0_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:537:6: ( '-' )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:537:6: ( '-' )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:538:1: '-'
                    {
                     before(grammarAccess.getSignedIntAccess().getSignHyphenMinusKeyword_0_0_1()); 
                    match(input,12,FOLLOW_12_in_rule__SignedInt__SignAlternatives_0_01092); 
                     after(grammarAccess.getSignedIntAccess().getSignHyphenMinusKeyword_0_0_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SignedInt__SignAlternatives_0_0


    // $ANTLR start rule__SimpleStmtKind__Alternatives
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:551:1: rule__SimpleStmtKind__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) | ( ( '<' ) ) | ( ( '>' ) ) | ( ( ',' ) ) | ( ( '.' ) ) );
    public final void rule__SimpleStmtKind__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:555:1: ( ( ( '+' ) ) | ( ( '-' ) ) | ( ( '<' ) ) | ( ( '>' ) ) | ( ( ',' ) ) | ( ( '.' ) ) )
            int alt5=6;
            switch ( input.LA(1) ) {
            case 11:
                {
                alt5=1;
                }
                break;
            case 12:
                {
                alt5=2;
                }
                break;
            case 13:
                {
                alt5=3;
                }
                break;
            case 14:
                {
                alt5=4;
                }
                break;
            case 15:
                {
                alt5=5;
                }
                break;
            case 16:
                {
                alt5=6;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("551:1: rule__SimpleStmtKind__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) | ( ( '<' ) ) | ( ( '>' ) ) | ( ( ',' ) ) | ( ( '.' ) ) );", 5, 0, input);

                throw nvae;
            }

            switch (alt5) {
                case 1 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:556:1: ( ( '+' ) )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:556:1: ( ( '+' ) )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:557:1: ( '+' )
                    {
                     before(grammarAccess.getSimpleStmtKindAccess().getPlusEnumLiteralDeclaration_0()); 
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:558:1: ( '+' )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:558:3: '+'
                    {
                    match(input,11,FOLLOW_11_in_rule__SimpleStmtKind__Alternatives1128); 

                    }

                     after(grammarAccess.getSimpleStmtKindAccess().getPlusEnumLiteralDeclaration_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:563:6: ( ( '-' ) )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:563:6: ( ( '-' ) )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:564:1: ( '-' )
                    {
                     before(grammarAccess.getSimpleStmtKindAccess().getMinusEnumLiteralDeclaration_1()); 
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:565:1: ( '-' )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:565:3: '-'
                    {
                    match(input,12,FOLLOW_12_in_rule__SimpleStmtKind__Alternatives1149); 

                    }

                     after(grammarAccess.getSimpleStmtKindAccess().getMinusEnumLiteralDeclaration_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:570:6: ( ( '<' ) )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:570:6: ( ( '<' ) )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:571:1: ( '<' )
                    {
                     before(grammarAccess.getSimpleStmtKindAccess().getLeftEnumLiteralDeclaration_2()); 
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:572:1: ( '<' )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:572:3: '<'
                    {
                    match(input,13,FOLLOW_13_in_rule__SimpleStmtKind__Alternatives1170); 

                    }

                     after(grammarAccess.getSimpleStmtKindAccess().getLeftEnumLiteralDeclaration_2()); 

                    }


                    }
                    break;
                case 4 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:577:6: ( ( '>' ) )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:577:6: ( ( '>' ) )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:578:1: ( '>' )
                    {
                     before(grammarAccess.getSimpleStmtKindAccess().getRightEnumLiteralDeclaration_3()); 
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:579:1: ( '>' )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:579:3: '>'
                    {
                    match(input,14,FOLLOW_14_in_rule__SimpleStmtKind__Alternatives1191); 

                    }

                     after(grammarAccess.getSimpleStmtKindAccess().getRightEnumLiteralDeclaration_3()); 

                    }


                    }
                    break;
                case 5 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:584:6: ( ( ',' ) )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:584:6: ( ( ',' ) )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:585:1: ( ',' )
                    {
                     before(grammarAccess.getSimpleStmtKindAccess().getInputEnumLiteralDeclaration_4()); 
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:586:1: ( ',' )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:586:3: ','
                    {
                    match(input,15,FOLLOW_15_in_rule__SimpleStmtKind__Alternatives1212); 

                    }

                     after(grammarAccess.getSimpleStmtKindAccess().getInputEnumLiteralDeclaration_4()); 

                    }


                    }
                    break;
                case 6 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:591:6: ( ( '.' ) )
                    {
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:591:6: ( ( '.' ) )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:592:1: ( '.' )
                    {
                     before(grammarAccess.getSimpleStmtKindAccess().getOutputEnumLiteralDeclaration_5()); 
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:593:1: ( '.' )
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:593:3: '.'
                    {
                    match(input,16,FOLLOW_16_in_rule__SimpleStmtKind__Alternatives1233); 

                    }

                     after(grammarAccess.getSimpleStmtKindAccess().getOutputEnumLiteralDeclaration_5()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SimpleStmtKind__Alternatives


    // $ANTLR start rule__BrainfuckProgram__Group__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:605:1: rule__BrainfuckProgram__Group__0 : rule__BrainfuckProgram__Group__0__Impl rule__BrainfuckProgram__Group__1 ;
    public final void rule__BrainfuckProgram__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:609:1: ( rule__BrainfuckProgram__Group__0__Impl rule__BrainfuckProgram__Group__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:610:2: rule__BrainfuckProgram__Group__0__Impl rule__BrainfuckProgram__Group__1
            {
            pushFollow(FOLLOW_rule__BrainfuckProgram__Group__0__Impl_in_rule__BrainfuckProgram__Group__01266);
            rule__BrainfuckProgram__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__BrainfuckProgram__Group__1_in_rule__BrainfuckProgram__Group__01269);
            rule__BrainfuckProgram__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group__0


    // $ANTLR start rule__BrainfuckProgram__Group__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:617:1: rule__BrainfuckProgram__Group__0__Impl : ( 'bfprogram' ) ;
    public final void rule__BrainfuckProgram__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:621:1: ( ( 'bfprogram' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:622:1: ( 'bfprogram' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:622:1: ( 'bfprogram' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:623:1: 'bfprogram'
            {
             before(grammarAccess.getBrainfuckProgramAccess().getBfprogramKeyword_0()); 
            match(input,17,FOLLOW_17_in_rule__BrainfuckProgram__Group__0__Impl1297); 
             after(grammarAccess.getBrainfuckProgramAccess().getBfprogramKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group__0__Impl


    // $ANTLR start rule__BrainfuckProgram__Group__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:636:1: rule__BrainfuckProgram__Group__1 : rule__BrainfuckProgram__Group__1__Impl rule__BrainfuckProgram__Group__2 ;
    public final void rule__BrainfuckProgram__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:640:1: ( rule__BrainfuckProgram__Group__1__Impl rule__BrainfuckProgram__Group__2 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:641:2: rule__BrainfuckProgram__Group__1__Impl rule__BrainfuckProgram__Group__2
            {
            pushFollow(FOLLOW_rule__BrainfuckProgram__Group__1__Impl_in_rule__BrainfuckProgram__Group__11328);
            rule__BrainfuckProgram__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__BrainfuckProgram__Group__2_in_rule__BrainfuckProgram__Group__11331);
            rule__BrainfuckProgram__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group__1


    // $ANTLR start rule__BrainfuckProgram__Group__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:648:1: rule__BrainfuckProgram__Group__1__Impl : ( ( rule__BrainfuckProgram__NameAssignment_1 ) ) ;
    public final void rule__BrainfuckProgram__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:652:1: ( ( ( rule__BrainfuckProgram__NameAssignment_1 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:653:1: ( ( rule__BrainfuckProgram__NameAssignment_1 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:653:1: ( ( rule__BrainfuckProgram__NameAssignment_1 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:654:1: ( rule__BrainfuckProgram__NameAssignment_1 )
            {
             before(grammarAccess.getBrainfuckProgramAccess().getNameAssignment_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:655:1: ( rule__BrainfuckProgram__NameAssignment_1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:655:2: rule__BrainfuckProgram__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__BrainfuckProgram__NameAssignment_1_in_rule__BrainfuckProgram__Group__1__Impl1358);
            rule__BrainfuckProgram__NameAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getBrainfuckProgramAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group__1__Impl


    // $ANTLR start rule__BrainfuckProgram__Group__2
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:665:1: rule__BrainfuckProgram__Group__2 : rule__BrainfuckProgram__Group__2__Impl rule__BrainfuckProgram__Group__3 ;
    public final void rule__BrainfuckProgram__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:669:1: ( rule__BrainfuckProgram__Group__2__Impl rule__BrainfuckProgram__Group__3 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:670:2: rule__BrainfuckProgram__Group__2__Impl rule__BrainfuckProgram__Group__3
            {
            pushFollow(FOLLOW_rule__BrainfuckProgram__Group__2__Impl_in_rule__BrainfuckProgram__Group__21388);
            rule__BrainfuckProgram__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__BrainfuckProgram__Group__3_in_rule__BrainfuckProgram__Group__21391);
            rule__BrainfuckProgram__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group__2


    // $ANTLR start rule__BrainfuckProgram__Group__2__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:677:1: rule__BrainfuckProgram__Group__2__Impl : ( '{' ) ;
    public final void rule__BrainfuckProgram__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:681:1: ( ( '{' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:682:1: ( '{' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:682:1: ( '{' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:683:1: '{'
            {
             before(grammarAccess.getBrainfuckProgramAccess().getLeftCurlyBracketKeyword_2()); 
            match(input,18,FOLLOW_18_in_rule__BrainfuckProgram__Group__2__Impl1419); 
             after(grammarAccess.getBrainfuckProgramAccess().getLeftCurlyBracketKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group__2__Impl


    // $ANTLR start rule__BrainfuckProgram__Group__3
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:696:1: rule__BrainfuckProgram__Group__3 : rule__BrainfuckProgram__Group__3__Impl rule__BrainfuckProgram__Group__4 ;
    public final void rule__BrainfuckProgram__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:700:1: ( rule__BrainfuckProgram__Group__3__Impl rule__BrainfuckProgram__Group__4 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:701:2: rule__BrainfuckProgram__Group__3__Impl rule__BrainfuckProgram__Group__4
            {
            pushFollow(FOLLOW_rule__BrainfuckProgram__Group__3__Impl_in_rule__BrainfuckProgram__Group__31450);
            rule__BrainfuckProgram__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__BrainfuckProgram__Group__4_in_rule__BrainfuckProgram__Group__31453);
            rule__BrainfuckProgram__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group__3


    // $ANTLR start rule__BrainfuckProgram__Group__3__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:708:1: rule__BrainfuckProgram__Group__3__Impl : ( ( rule__BrainfuckProgram__Group_3__0 )? ) ;
    public final void rule__BrainfuckProgram__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:712:1: ( ( ( rule__BrainfuckProgram__Group_3__0 )? ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:713:1: ( ( rule__BrainfuckProgram__Group_3__0 )? )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:713:1: ( ( rule__BrainfuckProgram__Group_3__0 )? )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:714:1: ( rule__BrainfuckProgram__Group_3__0 )?
            {
             before(grammarAccess.getBrainfuckProgramAccess().getGroup_3()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:715:1: ( rule__BrainfuckProgram__Group_3__0 )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==20) ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:715:2: rule__BrainfuckProgram__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__BrainfuckProgram__Group_3__0_in_rule__BrainfuckProgram__Group__3__Impl1480);
                    rule__BrainfuckProgram__Group_3__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getBrainfuckProgramAccess().getGroup_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group__3__Impl


    // $ANTLR start rule__BrainfuckProgram__Group__4
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:725:1: rule__BrainfuckProgram__Group__4 : rule__BrainfuckProgram__Group__4__Impl rule__BrainfuckProgram__Group__5 ;
    public final void rule__BrainfuckProgram__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:729:1: ( rule__BrainfuckProgram__Group__4__Impl rule__BrainfuckProgram__Group__5 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:730:2: rule__BrainfuckProgram__Group__4__Impl rule__BrainfuckProgram__Group__5
            {
            pushFollow(FOLLOW_rule__BrainfuckProgram__Group__4__Impl_in_rule__BrainfuckProgram__Group__41511);
            rule__BrainfuckProgram__Group__4__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__BrainfuckProgram__Group__5_in_rule__BrainfuckProgram__Group__41514);
            rule__BrainfuckProgram__Group__5();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group__4


    // $ANTLR start rule__BrainfuckProgram__Group__4__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:737:1: rule__BrainfuckProgram__Group__4__Impl : ( ( rule__BrainfuckProgram__Group_4__0 )? ) ;
    public final void rule__BrainfuckProgram__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:741:1: ( ( ( rule__BrainfuckProgram__Group_4__0 )? ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:742:1: ( ( rule__BrainfuckProgram__Group_4__0 )? )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:742:1: ( ( rule__BrainfuckProgram__Group_4__0 )? )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:743:1: ( rule__BrainfuckProgram__Group_4__0 )?
            {
             before(grammarAccess.getBrainfuckProgramAccess().getGroup_4()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:744:1: ( rule__BrainfuckProgram__Group_4__0 )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==21) ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:744:2: rule__BrainfuckProgram__Group_4__0
                    {
                    pushFollow(FOLLOW_rule__BrainfuckProgram__Group_4__0_in_rule__BrainfuckProgram__Group__4__Impl1541);
                    rule__BrainfuckProgram__Group_4__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getBrainfuckProgramAccess().getGroup_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group__4__Impl


    // $ANTLR start rule__BrainfuckProgram__Group__5
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:754:1: rule__BrainfuckProgram__Group__5 : rule__BrainfuckProgram__Group__5__Impl rule__BrainfuckProgram__Group__6 ;
    public final void rule__BrainfuckProgram__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:758:1: ( rule__BrainfuckProgram__Group__5__Impl rule__BrainfuckProgram__Group__6 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:759:2: rule__BrainfuckProgram__Group__5__Impl rule__BrainfuckProgram__Group__6
            {
            pushFollow(FOLLOW_rule__BrainfuckProgram__Group__5__Impl_in_rule__BrainfuckProgram__Group__51572);
            rule__BrainfuckProgram__Group__5__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__BrainfuckProgram__Group__6_in_rule__BrainfuckProgram__Group__51575);
            rule__BrainfuckProgram__Group__6();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group__5


    // $ANTLR start rule__BrainfuckProgram__Group__5__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:766:1: rule__BrainfuckProgram__Group__5__Impl : ( ( rule__BrainfuckProgram__StmtsAssignment_5 )* ) ;
    public final void rule__BrainfuckProgram__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:770:1: ( ( ( rule__BrainfuckProgram__StmtsAssignment_5 )* ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:771:1: ( ( rule__BrainfuckProgram__StmtsAssignment_5 )* )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:771:1: ( ( rule__BrainfuckProgram__StmtsAssignment_5 )* )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:772:1: ( rule__BrainfuckProgram__StmtsAssignment_5 )*
            {
             before(grammarAccess.getBrainfuckProgramAccess().getStmtsAssignment_5()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:773:1: ( rule__BrainfuckProgram__StmtsAssignment_5 )*
            loop8:
            do {
                int alt8=2;
                int LA8_0 = input.LA(1);

                if ( (LA8_0==RULE_ID||(LA8_0>=11 && LA8_0<=16)||LA8_0==18||LA8_0==30) ) {
                    alt8=1;
                }


                switch (alt8) {
            	case 1 :
            	    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:773:2: rule__BrainfuckProgram__StmtsAssignment_5
            	    {
            	    pushFollow(FOLLOW_rule__BrainfuckProgram__StmtsAssignment_5_in_rule__BrainfuckProgram__Group__5__Impl1602);
            	    rule__BrainfuckProgram__StmtsAssignment_5();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop8;
                }
            } while (true);

             after(grammarAccess.getBrainfuckProgramAccess().getStmtsAssignment_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group__5__Impl


    // $ANTLR start rule__BrainfuckProgram__Group__6
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:783:1: rule__BrainfuckProgram__Group__6 : rule__BrainfuckProgram__Group__6__Impl ;
    public final void rule__BrainfuckProgram__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:787:1: ( rule__BrainfuckProgram__Group__6__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:788:2: rule__BrainfuckProgram__Group__6__Impl
            {
            pushFollow(FOLLOW_rule__BrainfuckProgram__Group__6__Impl_in_rule__BrainfuckProgram__Group__61633);
            rule__BrainfuckProgram__Group__6__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group__6


    // $ANTLR start rule__BrainfuckProgram__Group__6__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:794:1: rule__BrainfuckProgram__Group__6__Impl : ( '}' ) ;
    public final void rule__BrainfuckProgram__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:798:1: ( ( '}' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:799:1: ( '}' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:799:1: ( '}' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:800:1: '}'
            {
             before(grammarAccess.getBrainfuckProgramAccess().getRightCurlyBracketKeyword_6()); 
            match(input,19,FOLLOW_19_in_rule__BrainfuckProgram__Group__6__Impl1661); 
             after(grammarAccess.getBrainfuckProgramAccess().getRightCurlyBracketKeyword_6()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group__6__Impl


    // $ANTLR start rule__BrainfuckProgram__Group_3__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:827:1: rule__BrainfuckProgram__Group_3__0 : rule__BrainfuckProgram__Group_3__0__Impl rule__BrainfuckProgram__Group_3__1 ;
    public final void rule__BrainfuckProgram__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:831:1: ( rule__BrainfuckProgram__Group_3__0__Impl rule__BrainfuckProgram__Group_3__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:832:2: rule__BrainfuckProgram__Group_3__0__Impl rule__BrainfuckProgram__Group_3__1
            {
            pushFollow(FOLLOW_rule__BrainfuckProgram__Group_3__0__Impl_in_rule__BrainfuckProgram__Group_3__01706);
            rule__BrainfuckProgram__Group_3__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__BrainfuckProgram__Group_3__1_in_rule__BrainfuckProgram__Group_3__01709);
            rule__BrainfuckProgram__Group_3__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group_3__0


    // $ANTLR start rule__BrainfuckProgram__Group_3__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:839:1: rule__BrainfuckProgram__Group_3__0__Impl : ( 'symbols:' ) ;
    public final void rule__BrainfuckProgram__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:843:1: ( ( 'symbols:' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:844:1: ( 'symbols:' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:844:1: ( 'symbols:' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:845:1: 'symbols:'
            {
             before(grammarAccess.getBrainfuckProgramAccess().getSymbolsKeyword_3_0()); 
            match(input,20,FOLLOW_20_in_rule__BrainfuckProgram__Group_3__0__Impl1737); 
             after(grammarAccess.getBrainfuckProgramAccess().getSymbolsKeyword_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group_3__0__Impl


    // $ANTLR start rule__BrainfuckProgram__Group_3__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:858:1: rule__BrainfuckProgram__Group_3__1 : rule__BrainfuckProgram__Group_3__1__Impl ;
    public final void rule__BrainfuckProgram__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:862:1: ( rule__BrainfuckProgram__Group_3__1__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:863:2: rule__BrainfuckProgram__Group_3__1__Impl
            {
            pushFollow(FOLLOW_rule__BrainfuckProgram__Group_3__1__Impl_in_rule__BrainfuckProgram__Group_3__11768);
            rule__BrainfuckProgram__Group_3__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group_3__1


    // $ANTLR start rule__BrainfuckProgram__Group_3__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:869:1: rule__BrainfuckProgram__Group_3__1__Impl : ( ( rule__BrainfuckProgram__SymbolsAssignment_3_1 )* ) ;
    public final void rule__BrainfuckProgram__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:873:1: ( ( ( rule__BrainfuckProgram__SymbolsAssignment_3_1 )* ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:874:1: ( ( rule__BrainfuckProgram__SymbolsAssignment_3_1 )* )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:874:1: ( ( rule__BrainfuckProgram__SymbolsAssignment_3_1 )* )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:875:1: ( rule__BrainfuckProgram__SymbolsAssignment_3_1 )*
            {
             before(grammarAccess.getBrainfuckProgramAccess().getSymbolsAssignment_3_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:876:1: ( rule__BrainfuckProgram__SymbolsAssignment_3_1 )*
            loop9:
            do {
                int alt9=2;
                int LA9_0 = input.LA(1);

                if ( (LA9_0==22) ) {
                    alt9=1;
                }


                switch (alt9) {
            	case 1 :
            	    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:876:2: rule__BrainfuckProgram__SymbolsAssignment_3_1
            	    {
            	    pushFollow(FOLLOW_rule__BrainfuckProgram__SymbolsAssignment_3_1_in_rule__BrainfuckProgram__Group_3__1__Impl1795);
            	    rule__BrainfuckProgram__SymbolsAssignment_3_1();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop9;
                }
            } while (true);

             after(grammarAccess.getBrainfuckProgramAccess().getSymbolsAssignment_3_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group_3__1__Impl


    // $ANTLR start rule__BrainfuckProgram__Group_4__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:890:1: rule__BrainfuckProgram__Group_4__0 : rule__BrainfuckProgram__Group_4__0__Impl rule__BrainfuckProgram__Group_4__1 ;
    public final void rule__BrainfuckProgram__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:894:1: ( rule__BrainfuckProgram__Group_4__0__Impl rule__BrainfuckProgram__Group_4__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:895:2: rule__BrainfuckProgram__Group_4__0__Impl rule__BrainfuckProgram__Group_4__1
            {
            pushFollow(FOLLOW_rule__BrainfuckProgram__Group_4__0__Impl_in_rule__BrainfuckProgram__Group_4__01830);
            rule__BrainfuckProgram__Group_4__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__BrainfuckProgram__Group_4__1_in_rule__BrainfuckProgram__Group_4__01833);
            rule__BrainfuckProgram__Group_4__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group_4__0


    // $ANTLR start rule__BrainfuckProgram__Group_4__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:902:1: rule__BrainfuckProgram__Group_4__0__Impl : ( 'macros:' ) ;
    public final void rule__BrainfuckProgram__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:906:1: ( ( 'macros:' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:907:1: ( 'macros:' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:907:1: ( 'macros:' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:908:1: 'macros:'
            {
             before(grammarAccess.getBrainfuckProgramAccess().getMacrosKeyword_4_0()); 
            match(input,21,FOLLOW_21_in_rule__BrainfuckProgram__Group_4__0__Impl1861); 
             after(grammarAccess.getBrainfuckProgramAccess().getMacrosKeyword_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group_4__0__Impl


    // $ANTLR start rule__BrainfuckProgram__Group_4__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:921:1: rule__BrainfuckProgram__Group_4__1 : rule__BrainfuckProgram__Group_4__1__Impl ;
    public final void rule__BrainfuckProgram__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:925:1: ( rule__BrainfuckProgram__Group_4__1__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:926:2: rule__BrainfuckProgram__Group_4__1__Impl
            {
            pushFollow(FOLLOW_rule__BrainfuckProgram__Group_4__1__Impl_in_rule__BrainfuckProgram__Group_4__11892);
            rule__BrainfuckProgram__Group_4__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group_4__1


    // $ANTLR start rule__BrainfuckProgram__Group_4__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:932:1: rule__BrainfuckProgram__Group_4__1__Impl : ( ( rule__BrainfuckProgram__MacrosAssignment_4_1 )* ) ;
    public final void rule__BrainfuckProgram__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:936:1: ( ( ( rule__BrainfuckProgram__MacrosAssignment_4_1 )* ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:937:1: ( ( rule__BrainfuckProgram__MacrosAssignment_4_1 )* )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:937:1: ( ( rule__BrainfuckProgram__MacrosAssignment_4_1 )* )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:938:1: ( rule__BrainfuckProgram__MacrosAssignment_4_1 )*
            {
             before(grammarAccess.getBrainfuckProgramAccess().getMacrosAssignment_4_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:939:1: ( rule__BrainfuckProgram__MacrosAssignment_4_1 )*
            loop10:
            do {
                int alt10=2;
                int LA10_0 = input.LA(1);

                if ( ((LA10_0>=24 && LA10_0<=25)) ) {
                    alt10=1;
                }


                switch (alt10) {
            	case 1 :
            	    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:939:2: rule__BrainfuckProgram__MacrosAssignment_4_1
            	    {
            	    pushFollow(FOLLOW_rule__BrainfuckProgram__MacrosAssignment_4_1_in_rule__BrainfuckProgram__Group_4__1__Impl1919);
            	    rule__BrainfuckProgram__MacrosAssignment_4_1();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop10;
                }
            } while (true);

             after(grammarAccess.getBrainfuckProgramAccess().getMacrosAssignment_4_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__Group_4__1__Impl


    // $ANTLR start rule__SymbolDef__Group__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:953:1: rule__SymbolDef__Group__0 : rule__SymbolDef__Group__0__Impl rule__SymbolDef__Group__1 ;
    public final void rule__SymbolDef__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:957:1: ( rule__SymbolDef__Group__0__Impl rule__SymbolDef__Group__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:958:2: rule__SymbolDef__Group__0__Impl rule__SymbolDef__Group__1
            {
            pushFollow(FOLLOW_rule__SymbolDef__Group__0__Impl_in_rule__SymbolDef__Group__01954);
            rule__SymbolDef__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__SymbolDef__Group__1_in_rule__SymbolDef__Group__01957);
            rule__SymbolDef__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SymbolDef__Group__0


    // $ANTLR start rule__SymbolDef__Group__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:965:1: rule__SymbolDef__Group__0__Impl : ( 'symbol' ) ;
    public final void rule__SymbolDef__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:969:1: ( ( 'symbol' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:970:1: ( 'symbol' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:970:1: ( 'symbol' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:971:1: 'symbol'
            {
             before(grammarAccess.getSymbolDefAccess().getSymbolKeyword_0()); 
            match(input,22,FOLLOW_22_in_rule__SymbolDef__Group__0__Impl1985); 
             after(grammarAccess.getSymbolDefAccess().getSymbolKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SymbolDef__Group__0__Impl


    // $ANTLR start rule__SymbolDef__Group__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:984:1: rule__SymbolDef__Group__1 : rule__SymbolDef__Group__1__Impl rule__SymbolDef__Group__2 ;
    public final void rule__SymbolDef__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:988:1: ( rule__SymbolDef__Group__1__Impl rule__SymbolDef__Group__2 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:989:2: rule__SymbolDef__Group__1__Impl rule__SymbolDef__Group__2
            {
            pushFollow(FOLLOW_rule__SymbolDef__Group__1__Impl_in_rule__SymbolDef__Group__12016);
            rule__SymbolDef__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__SymbolDef__Group__2_in_rule__SymbolDef__Group__12019);
            rule__SymbolDef__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SymbolDef__Group__1


    // $ANTLR start rule__SymbolDef__Group__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:996:1: rule__SymbolDef__Group__1__Impl : ( ( rule__SymbolDef__NameAssignment_1 ) ) ;
    public final void rule__SymbolDef__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1000:1: ( ( ( rule__SymbolDef__NameAssignment_1 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1001:1: ( ( rule__SymbolDef__NameAssignment_1 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1001:1: ( ( rule__SymbolDef__NameAssignment_1 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1002:1: ( rule__SymbolDef__NameAssignment_1 )
            {
             before(grammarAccess.getSymbolDefAccess().getNameAssignment_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1003:1: ( rule__SymbolDef__NameAssignment_1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1003:2: rule__SymbolDef__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__SymbolDef__NameAssignment_1_in_rule__SymbolDef__Group__1__Impl2046);
            rule__SymbolDef__NameAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getSymbolDefAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SymbolDef__Group__1__Impl


    // $ANTLR start rule__SymbolDef__Group__2
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1013:1: rule__SymbolDef__Group__2 : rule__SymbolDef__Group__2__Impl rule__SymbolDef__Group__3 ;
    public final void rule__SymbolDef__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1017:1: ( rule__SymbolDef__Group__2__Impl rule__SymbolDef__Group__3 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1018:2: rule__SymbolDef__Group__2__Impl rule__SymbolDef__Group__3
            {
            pushFollow(FOLLOW_rule__SymbolDef__Group__2__Impl_in_rule__SymbolDef__Group__22076);
            rule__SymbolDef__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__SymbolDef__Group__3_in_rule__SymbolDef__Group__22079);
            rule__SymbolDef__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SymbolDef__Group__2


    // $ANTLR start rule__SymbolDef__Group__2__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1025:1: rule__SymbolDef__Group__2__Impl : ( '=' ) ;
    public final void rule__SymbolDef__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1029:1: ( ( '=' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1030:1: ( '=' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1030:1: ( '=' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1031:1: '='
            {
             before(grammarAccess.getSymbolDefAccess().getEqualsSignKeyword_2()); 
            match(input,23,FOLLOW_23_in_rule__SymbolDef__Group__2__Impl2107); 
             after(grammarAccess.getSymbolDefAccess().getEqualsSignKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SymbolDef__Group__2__Impl


    // $ANTLR start rule__SymbolDef__Group__3
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1044:1: rule__SymbolDef__Group__3 : rule__SymbolDef__Group__3__Impl ;
    public final void rule__SymbolDef__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1048:1: ( rule__SymbolDef__Group__3__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1049:2: rule__SymbolDef__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__SymbolDef__Group__3__Impl_in_rule__SymbolDef__Group__32138);
            rule__SymbolDef__Group__3__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SymbolDef__Group__3


    // $ANTLR start rule__SymbolDef__Group__3__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1055:1: rule__SymbolDef__Group__3__Impl : ( ( rule__SymbolDef__ValueAssignment_3 ) ) ;
    public final void rule__SymbolDef__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1059:1: ( ( ( rule__SymbolDef__ValueAssignment_3 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1060:1: ( ( rule__SymbolDef__ValueAssignment_3 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1060:1: ( ( rule__SymbolDef__ValueAssignment_3 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1061:1: ( rule__SymbolDef__ValueAssignment_3 )
            {
             before(grammarAccess.getSymbolDefAccess().getValueAssignment_3()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1062:1: ( rule__SymbolDef__ValueAssignment_3 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1062:2: rule__SymbolDef__ValueAssignment_3
            {
            pushFollow(FOLLOW_rule__SymbolDef__ValueAssignment_3_in_rule__SymbolDef__Group__3__Impl2165);
            rule__SymbolDef__ValueAssignment_3();
            _fsp--;


            }

             after(grammarAccess.getSymbolDefAccess().getValueAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SymbolDef__Group__3__Impl


    // $ANTLR start rule__Region__Group__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1080:1: rule__Region__Group__0 : rule__Region__Group__0__Impl rule__Region__Group__1 ;
    public final void rule__Region__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1084:1: ( rule__Region__Group__0__Impl rule__Region__Group__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1085:2: rule__Region__Group__0__Impl rule__Region__Group__1
            {
            pushFollow(FOLLOW_rule__Region__Group__0__Impl_in_rule__Region__Group__02203);
            rule__Region__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Region__Group__1_in_rule__Region__Group__02206);
            rule__Region__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Region__Group__0


    // $ANTLR start rule__Region__Group__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1092:1: rule__Region__Group__0__Impl : ( '#region' ) ;
    public final void rule__Region__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1096:1: ( ( '#region' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1097:1: ( '#region' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1097:1: ( '#region' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1098:1: '#region'
            {
             before(grammarAccess.getRegionAccess().getRegionKeyword_0()); 
            match(input,24,FOLLOW_24_in_rule__Region__Group__0__Impl2234); 
             after(grammarAccess.getRegionAccess().getRegionKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Region__Group__0__Impl


    // $ANTLR start rule__Region__Group__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1111:1: rule__Region__Group__1 : rule__Region__Group__1__Impl rule__Region__Group__2 ;
    public final void rule__Region__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1115:1: ( rule__Region__Group__1__Impl rule__Region__Group__2 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1116:2: rule__Region__Group__1__Impl rule__Region__Group__2
            {
            pushFollow(FOLLOW_rule__Region__Group__1__Impl_in_rule__Region__Group__12265);
            rule__Region__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Region__Group__2_in_rule__Region__Group__12268);
            rule__Region__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Region__Group__1


    // $ANTLR start rule__Region__Group__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1123:1: rule__Region__Group__1__Impl : ( ( rule__Region__NameAssignment_1 ) ) ;
    public final void rule__Region__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1127:1: ( ( ( rule__Region__NameAssignment_1 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1128:1: ( ( rule__Region__NameAssignment_1 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1128:1: ( ( rule__Region__NameAssignment_1 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1129:1: ( rule__Region__NameAssignment_1 )
            {
             before(grammarAccess.getRegionAccess().getNameAssignment_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1130:1: ( rule__Region__NameAssignment_1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1130:2: rule__Region__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Region__NameAssignment_1_in_rule__Region__Group__1__Impl2295);
            rule__Region__NameAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getRegionAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Region__Group__1__Impl


    // $ANTLR start rule__Region__Group__2
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1140:1: rule__Region__Group__2 : rule__Region__Group__2__Impl rule__Region__Group__3 ;
    public final void rule__Region__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1144:1: ( rule__Region__Group__2__Impl rule__Region__Group__3 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1145:2: rule__Region__Group__2__Impl rule__Region__Group__3
            {
            pushFollow(FOLLOW_rule__Region__Group__2__Impl_in_rule__Region__Group__22325);
            rule__Region__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Region__Group__3_in_rule__Region__Group__22328);
            rule__Region__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Region__Group__2


    // $ANTLR start rule__Region__Group__2__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1152:1: rule__Region__Group__2__Impl : ( '{' ) ;
    public final void rule__Region__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1156:1: ( ( '{' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1157:1: ( '{' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1157:1: ( '{' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1158:1: '{'
            {
             before(grammarAccess.getRegionAccess().getLeftCurlyBracketKeyword_2()); 
            match(input,18,FOLLOW_18_in_rule__Region__Group__2__Impl2356); 
             after(grammarAccess.getRegionAccess().getLeftCurlyBracketKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Region__Group__2__Impl


    // $ANTLR start rule__Region__Group__3
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1171:1: rule__Region__Group__3 : rule__Region__Group__3__Impl rule__Region__Group__4 ;
    public final void rule__Region__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1175:1: ( rule__Region__Group__3__Impl rule__Region__Group__4 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1176:2: rule__Region__Group__3__Impl rule__Region__Group__4
            {
            pushFollow(FOLLOW_rule__Region__Group__3__Impl_in_rule__Region__Group__32387);
            rule__Region__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__Region__Group__4_in_rule__Region__Group__32390);
            rule__Region__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Region__Group__3


    // $ANTLR start rule__Region__Group__3__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1183:1: rule__Region__Group__3__Impl : ( ( rule__Region__ElementsAssignment_3 )* ) ;
    public final void rule__Region__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1187:1: ( ( ( rule__Region__ElementsAssignment_3 )* ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1188:1: ( ( rule__Region__ElementsAssignment_3 )* )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1188:1: ( ( rule__Region__ElementsAssignment_3 )* )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1189:1: ( rule__Region__ElementsAssignment_3 )*
            {
             before(grammarAccess.getRegionAccess().getElementsAssignment_3()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1190:1: ( rule__Region__ElementsAssignment_3 )*
            loop11:
            do {
                int alt11=2;
                int LA11_0 = input.LA(1);

                if ( ((LA11_0>=24 && LA11_0<=25)) ) {
                    alt11=1;
                }


                switch (alt11) {
            	case 1 :
            	    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1190:2: rule__Region__ElementsAssignment_3
            	    {
            	    pushFollow(FOLLOW_rule__Region__ElementsAssignment_3_in_rule__Region__Group__3__Impl2417);
            	    rule__Region__ElementsAssignment_3();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop11;
                }
            } while (true);

             after(grammarAccess.getRegionAccess().getElementsAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Region__Group__3__Impl


    // $ANTLR start rule__Region__Group__4
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1200:1: rule__Region__Group__4 : rule__Region__Group__4__Impl ;
    public final void rule__Region__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1204:1: ( rule__Region__Group__4__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1205:2: rule__Region__Group__4__Impl
            {
            pushFollow(FOLLOW_rule__Region__Group__4__Impl_in_rule__Region__Group__42448);
            rule__Region__Group__4__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Region__Group__4


    // $ANTLR start rule__Region__Group__4__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1211:1: rule__Region__Group__4__Impl : ( '}' ) ;
    public final void rule__Region__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1215:1: ( ( '}' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1216:1: ( '}' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1216:1: ( '}' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1217:1: '}'
            {
             before(grammarAccess.getRegionAccess().getRightCurlyBracketKeyword_4()); 
            match(input,19,FOLLOW_19_in_rule__Region__Group__4__Impl2476); 
             after(grammarAccess.getRegionAccess().getRightCurlyBracketKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Region__Group__4__Impl


    // $ANTLR start rule__MacroDef__Group__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1240:1: rule__MacroDef__Group__0 : rule__MacroDef__Group__0__Impl rule__MacroDef__Group__1 ;
    public final void rule__MacroDef__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1244:1: ( rule__MacroDef__Group__0__Impl rule__MacroDef__Group__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1245:2: rule__MacroDef__Group__0__Impl rule__MacroDef__Group__1
            {
            pushFollow(FOLLOW_rule__MacroDef__Group__0__Impl_in_rule__MacroDef__Group__02517);
            rule__MacroDef__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MacroDef__Group__1_in_rule__MacroDef__Group__02520);
            rule__MacroDef__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group__0


    // $ANTLR start rule__MacroDef__Group__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1252:1: rule__MacroDef__Group__0__Impl : ( 'macro' ) ;
    public final void rule__MacroDef__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1256:1: ( ( 'macro' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1257:1: ( 'macro' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1257:1: ( 'macro' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1258:1: 'macro'
            {
             before(grammarAccess.getMacroDefAccess().getMacroKeyword_0()); 
            match(input,25,FOLLOW_25_in_rule__MacroDef__Group__0__Impl2548); 
             after(grammarAccess.getMacroDefAccess().getMacroKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group__0__Impl


    // $ANTLR start rule__MacroDef__Group__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1271:1: rule__MacroDef__Group__1 : rule__MacroDef__Group__1__Impl rule__MacroDef__Group__2 ;
    public final void rule__MacroDef__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1275:1: ( rule__MacroDef__Group__1__Impl rule__MacroDef__Group__2 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1276:2: rule__MacroDef__Group__1__Impl rule__MacroDef__Group__2
            {
            pushFollow(FOLLOW_rule__MacroDef__Group__1__Impl_in_rule__MacroDef__Group__12579);
            rule__MacroDef__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MacroDef__Group__2_in_rule__MacroDef__Group__12582);
            rule__MacroDef__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group__1


    // $ANTLR start rule__MacroDef__Group__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1283:1: rule__MacroDef__Group__1__Impl : ( ( rule__MacroDef__NameAssignment_1 ) ) ;
    public final void rule__MacroDef__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1287:1: ( ( ( rule__MacroDef__NameAssignment_1 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1288:1: ( ( rule__MacroDef__NameAssignment_1 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1288:1: ( ( rule__MacroDef__NameAssignment_1 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1289:1: ( rule__MacroDef__NameAssignment_1 )
            {
             before(grammarAccess.getMacroDefAccess().getNameAssignment_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1290:1: ( rule__MacroDef__NameAssignment_1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1290:2: rule__MacroDef__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__MacroDef__NameAssignment_1_in_rule__MacroDef__Group__1__Impl2609);
            rule__MacroDef__NameAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getMacroDefAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group__1__Impl


    // $ANTLR start rule__MacroDef__Group__2
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1300:1: rule__MacroDef__Group__2 : rule__MacroDef__Group__2__Impl rule__MacroDef__Group__3 ;
    public final void rule__MacroDef__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1304:1: ( rule__MacroDef__Group__2__Impl rule__MacroDef__Group__3 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1305:2: rule__MacroDef__Group__2__Impl rule__MacroDef__Group__3
            {
            pushFollow(FOLLOW_rule__MacroDef__Group__2__Impl_in_rule__MacroDef__Group__22639);
            rule__MacroDef__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MacroDef__Group__3_in_rule__MacroDef__Group__22642);
            rule__MacroDef__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group__2


    // $ANTLR start rule__MacroDef__Group__2__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1312:1: rule__MacroDef__Group__2__Impl : ( ( rule__MacroDef__Group_2__0 )? ) ;
    public final void rule__MacroDef__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1316:1: ( ( ( rule__MacroDef__Group_2__0 )? ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1317:1: ( ( rule__MacroDef__Group_2__0 )? )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1317:1: ( ( rule__MacroDef__Group_2__0 )? )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1318:1: ( rule__MacroDef__Group_2__0 )?
            {
             before(grammarAccess.getMacroDefAccess().getGroup_2()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1319:1: ( rule__MacroDef__Group_2__0 )?
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0==26) ) {
                alt12=1;
            }
            switch (alt12) {
                case 1 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1319:2: rule__MacroDef__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__MacroDef__Group_2__0_in_rule__MacroDef__Group__2__Impl2669);
                    rule__MacroDef__Group_2__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getMacroDefAccess().getGroup_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group__2__Impl


    // $ANTLR start rule__MacroDef__Group__3
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1329:1: rule__MacroDef__Group__3 : rule__MacroDef__Group__3__Impl rule__MacroDef__Group__4 ;
    public final void rule__MacroDef__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1333:1: ( rule__MacroDef__Group__3__Impl rule__MacroDef__Group__4 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1334:2: rule__MacroDef__Group__3__Impl rule__MacroDef__Group__4
            {
            pushFollow(FOLLOW_rule__MacroDef__Group__3__Impl_in_rule__MacroDef__Group__32700);
            rule__MacroDef__Group__3__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MacroDef__Group__4_in_rule__MacroDef__Group__32703);
            rule__MacroDef__Group__4();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group__3


    // $ANTLR start rule__MacroDef__Group__3__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1341:1: rule__MacroDef__Group__3__Impl : ( '{' ) ;
    public final void rule__MacroDef__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1345:1: ( ( '{' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1346:1: ( '{' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1346:1: ( '{' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1347:1: '{'
            {
             before(grammarAccess.getMacroDefAccess().getLeftCurlyBracketKeyword_3()); 
            match(input,18,FOLLOW_18_in_rule__MacroDef__Group__3__Impl2731); 
             after(grammarAccess.getMacroDefAccess().getLeftCurlyBracketKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group__3__Impl


    // $ANTLR start rule__MacroDef__Group__4
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1360:1: rule__MacroDef__Group__4 : rule__MacroDef__Group__4__Impl rule__MacroDef__Group__5 ;
    public final void rule__MacroDef__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1364:1: ( rule__MacroDef__Group__4__Impl rule__MacroDef__Group__5 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1365:2: rule__MacroDef__Group__4__Impl rule__MacroDef__Group__5
            {
            pushFollow(FOLLOW_rule__MacroDef__Group__4__Impl_in_rule__MacroDef__Group__42762);
            rule__MacroDef__Group__4__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MacroDef__Group__5_in_rule__MacroDef__Group__42765);
            rule__MacroDef__Group__5();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group__4


    // $ANTLR start rule__MacroDef__Group__4__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1372:1: rule__MacroDef__Group__4__Impl : ( ( rule__MacroDef__StmtsAssignment_4 )* ) ;
    public final void rule__MacroDef__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1376:1: ( ( ( rule__MacroDef__StmtsAssignment_4 )* ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1377:1: ( ( rule__MacroDef__StmtsAssignment_4 )* )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1377:1: ( ( rule__MacroDef__StmtsAssignment_4 )* )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1378:1: ( rule__MacroDef__StmtsAssignment_4 )*
            {
             before(grammarAccess.getMacroDefAccess().getStmtsAssignment_4()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1379:1: ( rule__MacroDef__StmtsAssignment_4 )*
            loop13:
            do {
                int alt13=2;
                int LA13_0 = input.LA(1);

                if ( (LA13_0==RULE_ID||(LA13_0>=11 && LA13_0<=16)||LA13_0==18||LA13_0==30) ) {
                    alt13=1;
                }


                switch (alt13) {
            	case 1 :
            	    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1379:2: rule__MacroDef__StmtsAssignment_4
            	    {
            	    pushFollow(FOLLOW_rule__MacroDef__StmtsAssignment_4_in_rule__MacroDef__Group__4__Impl2792);
            	    rule__MacroDef__StmtsAssignment_4();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop13;
                }
            } while (true);

             after(grammarAccess.getMacroDefAccess().getStmtsAssignment_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group__4__Impl


    // $ANTLR start rule__MacroDef__Group__5
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1389:1: rule__MacroDef__Group__5 : rule__MacroDef__Group__5__Impl ;
    public final void rule__MacroDef__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1393:1: ( rule__MacroDef__Group__5__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1394:2: rule__MacroDef__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__MacroDef__Group__5__Impl_in_rule__MacroDef__Group__52823);
            rule__MacroDef__Group__5__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group__5


    // $ANTLR start rule__MacroDef__Group__5__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1400:1: rule__MacroDef__Group__5__Impl : ( '}' ) ;
    public final void rule__MacroDef__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1404:1: ( ( '}' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1405:1: ( '}' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1405:1: ( '}' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1406:1: '}'
            {
             before(grammarAccess.getMacroDefAccess().getRightCurlyBracketKeyword_5()); 
            match(input,19,FOLLOW_19_in_rule__MacroDef__Group__5__Impl2851); 
             after(grammarAccess.getMacroDefAccess().getRightCurlyBracketKeyword_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group__5__Impl


    // $ANTLR start rule__MacroDef__Group_2__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1431:1: rule__MacroDef__Group_2__0 : rule__MacroDef__Group_2__0__Impl rule__MacroDef__Group_2__1 ;
    public final void rule__MacroDef__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1435:1: ( rule__MacroDef__Group_2__0__Impl rule__MacroDef__Group_2__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1436:2: rule__MacroDef__Group_2__0__Impl rule__MacroDef__Group_2__1
            {
            pushFollow(FOLLOW_rule__MacroDef__Group_2__0__Impl_in_rule__MacroDef__Group_2__02894);
            rule__MacroDef__Group_2__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MacroDef__Group_2__1_in_rule__MacroDef__Group_2__02897);
            rule__MacroDef__Group_2__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group_2__0


    // $ANTLR start rule__MacroDef__Group_2__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1443:1: rule__MacroDef__Group_2__0__Impl : ( '(' ) ;
    public final void rule__MacroDef__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1447:1: ( ( '(' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1448:1: ( '(' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1448:1: ( '(' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1449:1: '('
            {
             before(grammarAccess.getMacroDefAccess().getLeftParenthesisKeyword_2_0()); 
            match(input,26,FOLLOW_26_in_rule__MacroDef__Group_2__0__Impl2925); 
             after(grammarAccess.getMacroDefAccess().getLeftParenthesisKeyword_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group_2__0__Impl


    // $ANTLR start rule__MacroDef__Group_2__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1462:1: rule__MacroDef__Group_2__1 : rule__MacroDef__Group_2__1__Impl rule__MacroDef__Group_2__2 ;
    public final void rule__MacroDef__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1466:1: ( rule__MacroDef__Group_2__1__Impl rule__MacroDef__Group_2__2 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1467:2: rule__MacroDef__Group_2__1__Impl rule__MacroDef__Group_2__2
            {
            pushFollow(FOLLOW_rule__MacroDef__Group_2__1__Impl_in_rule__MacroDef__Group_2__12956);
            rule__MacroDef__Group_2__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MacroDef__Group_2__2_in_rule__MacroDef__Group_2__12959);
            rule__MacroDef__Group_2__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group_2__1


    // $ANTLR start rule__MacroDef__Group_2__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1474:1: rule__MacroDef__Group_2__1__Impl : ( ( rule__MacroDef__ParamsAssignment_2_1 ) ) ;
    public final void rule__MacroDef__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1478:1: ( ( ( rule__MacroDef__ParamsAssignment_2_1 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1479:1: ( ( rule__MacroDef__ParamsAssignment_2_1 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1479:1: ( ( rule__MacroDef__ParamsAssignment_2_1 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1480:1: ( rule__MacroDef__ParamsAssignment_2_1 )
            {
             before(grammarAccess.getMacroDefAccess().getParamsAssignment_2_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1481:1: ( rule__MacroDef__ParamsAssignment_2_1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1481:2: rule__MacroDef__ParamsAssignment_2_1
            {
            pushFollow(FOLLOW_rule__MacroDef__ParamsAssignment_2_1_in_rule__MacroDef__Group_2__1__Impl2986);
            rule__MacroDef__ParamsAssignment_2_1();
            _fsp--;


            }

             after(grammarAccess.getMacroDefAccess().getParamsAssignment_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group_2__1__Impl


    // $ANTLR start rule__MacroDef__Group_2__2
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1491:1: rule__MacroDef__Group_2__2 : rule__MacroDef__Group_2__2__Impl rule__MacroDef__Group_2__3 ;
    public final void rule__MacroDef__Group_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1495:1: ( rule__MacroDef__Group_2__2__Impl rule__MacroDef__Group_2__3 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1496:2: rule__MacroDef__Group_2__2__Impl rule__MacroDef__Group_2__3
            {
            pushFollow(FOLLOW_rule__MacroDef__Group_2__2__Impl_in_rule__MacroDef__Group_2__23016);
            rule__MacroDef__Group_2__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MacroDef__Group_2__3_in_rule__MacroDef__Group_2__23019);
            rule__MacroDef__Group_2__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group_2__2


    // $ANTLR start rule__MacroDef__Group_2__2__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1503:1: rule__MacroDef__Group_2__2__Impl : ( ( rule__MacroDef__Group_2_2__0 )* ) ;
    public final void rule__MacroDef__Group_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1507:1: ( ( ( rule__MacroDef__Group_2_2__0 )* ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1508:1: ( ( rule__MacroDef__Group_2_2__0 )* )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1508:1: ( ( rule__MacroDef__Group_2_2__0 )* )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1509:1: ( rule__MacroDef__Group_2_2__0 )*
            {
             before(grammarAccess.getMacroDefAccess().getGroup_2_2()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1510:1: ( rule__MacroDef__Group_2_2__0 )*
            loop14:
            do {
                int alt14=2;
                int LA14_0 = input.LA(1);

                if ( (LA14_0==15) ) {
                    alt14=1;
                }


                switch (alt14) {
            	case 1 :
            	    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1510:2: rule__MacroDef__Group_2_2__0
            	    {
            	    pushFollow(FOLLOW_rule__MacroDef__Group_2_2__0_in_rule__MacroDef__Group_2__2__Impl3046);
            	    rule__MacroDef__Group_2_2__0();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop14;
                }
            } while (true);

             after(grammarAccess.getMacroDefAccess().getGroup_2_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group_2__2__Impl


    // $ANTLR start rule__MacroDef__Group_2__3
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1520:1: rule__MacroDef__Group_2__3 : rule__MacroDef__Group_2__3__Impl ;
    public final void rule__MacroDef__Group_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1524:1: ( rule__MacroDef__Group_2__3__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1525:2: rule__MacroDef__Group_2__3__Impl
            {
            pushFollow(FOLLOW_rule__MacroDef__Group_2__3__Impl_in_rule__MacroDef__Group_2__33077);
            rule__MacroDef__Group_2__3__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group_2__3


    // $ANTLR start rule__MacroDef__Group_2__3__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1531:1: rule__MacroDef__Group_2__3__Impl : ( ')' ) ;
    public final void rule__MacroDef__Group_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1535:1: ( ( ')' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1536:1: ( ')' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1536:1: ( ')' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1537:1: ')'
            {
             before(grammarAccess.getMacroDefAccess().getRightParenthesisKeyword_2_3()); 
            match(input,27,FOLLOW_27_in_rule__MacroDef__Group_2__3__Impl3105); 
             after(grammarAccess.getMacroDefAccess().getRightParenthesisKeyword_2_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group_2__3__Impl


    // $ANTLR start rule__MacroDef__Group_2_2__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1558:1: rule__MacroDef__Group_2_2__0 : rule__MacroDef__Group_2_2__0__Impl rule__MacroDef__Group_2_2__1 ;
    public final void rule__MacroDef__Group_2_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1562:1: ( rule__MacroDef__Group_2_2__0__Impl rule__MacroDef__Group_2_2__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1563:2: rule__MacroDef__Group_2_2__0__Impl rule__MacroDef__Group_2_2__1
            {
            pushFollow(FOLLOW_rule__MacroDef__Group_2_2__0__Impl_in_rule__MacroDef__Group_2_2__03144);
            rule__MacroDef__Group_2_2__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MacroDef__Group_2_2__1_in_rule__MacroDef__Group_2_2__03147);
            rule__MacroDef__Group_2_2__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group_2_2__0


    // $ANTLR start rule__MacroDef__Group_2_2__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1570:1: rule__MacroDef__Group_2_2__0__Impl : ( ',' ) ;
    public final void rule__MacroDef__Group_2_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1574:1: ( ( ',' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1575:1: ( ',' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1575:1: ( ',' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1576:1: ','
            {
             before(grammarAccess.getMacroDefAccess().getCommaKeyword_2_2_0()); 
            match(input,15,FOLLOW_15_in_rule__MacroDef__Group_2_2__0__Impl3175); 
             after(grammarAccess.getMacroDefAccess().getCommaKeyword_2_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group_2_2__0__Impl


    // $ANTLR start rule__MacroDef__Group_2_2__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1589:1: rule__MacroDef__Group_2_2__1 : rule__MacroDef__Group_2_2__1__Impl ;
    public final void rule__MacroDef__Group_2_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1593:1: ( rule__MacroDef__Group_2_2__1__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1594:2: rule__MacroDef__Group_2_2__1__Impl
            {
            pushFollow(FOLLOW_rule__MacroDef__Group_2_2__1__Impl_in_rule__MacroDef__Group_2_2__13206);
            rule__MacroDef__Group_2_2__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group_2_2__1


    // $ANTLR start rule__MacroDef__Group_2_2__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1600:1: rule__MacroDef__Group_2_2__1__Impl : ( ( rule__MacroDef__ParamsAssignment_2_2_1 ) ) ;
    public final void rule__MacroDef__Group_2_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1604:1: ( ( ( rule__MacroDef__ParamsAssignment_2_2_1 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1605:1: ( ( rule__MacroDef__ParamsAssignment_2_2_1 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1605:1: ( ( rule__MacroDef__ParamsAssignment_2_2_1 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1606:1: ( rule__MacroDef__ParamsAssignment_2_2_1 )
            {
             before(grammarAccess.getMacroDefAccess().getParamsAssignment_2_2_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1607:1: ( rule__MacroDef__ParamsAssignment_2_2_1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1607:2: rule__MacroDef__ParamsAssignment_2_2_1
            {
            pushFollow(FOLLOW_rule__MacroDef__ParamsAssignment_2_2_1_in_rule__MacroDef__Group_2_2__1__Impl3233);
            rule__MacroDef__ParamsAssignment_2_2_1();
            _fsp--;


            }

             after(grammarAccess.getMacroDefAccess().getParamsAssignment_2_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__Group_2_2__1__Impl


    // $ANTLR start rule__ParamDef__Group__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1621:1: rule__ParamDef__Group__0 : rule__ParamDef__Group__0__Impl rule__ParamDef__Group__1 ;
    public final void rule__ParamDef__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1625:1: ( rule__ParamDef__Group__0__Impl rule__ParamDef__Group__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1626:2: rule__ParamDef__Group__0__Impl rule__ParamDef__Group__1
            {
            pushFollow(FOLLOW_rule__ParamDef__Group__0__Impl_in_rule__ParamDef__Group__03267);
            rule__ParamDef__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__ParamDef__Group__1_in_rule__ParamDef__Group__03270);
            rule__ParamDef__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ParamDef__Group__0


    // $ANTLR start rule__ParamDef__Group__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1633:1: rule__ParamDef__Group__0__Impl : ( 'param' ) ;
    public final void rule__ParamDef__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1637:1: ( ( 'param' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1638:1: ( 'param' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1638:1: ( 'param' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1639:1: 'param'
            {
             before(grammarAccess.getParamDefAccess().getParamKeyword_0()); 
            match(input,28,FOLLOW_28_in_rule__ParamDef__Group__0__Impl3298); 
             after(grammarAccess.getParamDefAccess().getParamKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ParamDef__Group__0__Impl


    // $ANTLR start rule__ParamDef__Group__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1652:1: rule__ParamDef__Group__1 : rule__ParamDef__Group__1__Impl ;
    public final void rule__ParamDef__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1656:1: ( rule__ParamDef__Group__1__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1657:2: rule__ParamDef__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__ParamDef__Group__1__Impl_in_rule__ParamDef__Group__13329);
            rule__ParamDef__Group__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ParamDef__Group__1


    // $ANTLR start rule__ParamDef__Group__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1663:1: rule__ParamDef__Group__1__Impl : ( ( rule__ParamDef__NameAssignment_1 ) ) ;
    public final void rule__ParamDef__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1667:1: ( ( ( rule__ParamDef__NameAssignment_1 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1668:1: ( ( rule__ParamDef__NameAssignment_1 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1668:1: ( ( rule__ParamDef__NameAssignment_1 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1669:1: ( rule__ParamDef__NameAssignment_1 )
            {
             before(grammarAccess.getParamDefAccess().getNameAssignment_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1670:1: ( rule__ParamDef__NameAssignment_1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1670:2: rule__ParamDef__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__ParamDef__NameAssignment_1_in_rule__ParamDef__Group__1__Impl3356);
            rule__ParamDef__NameAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getParamDefAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ParamDef__Group__1__Impl


    // $ANTLR start rule__AbstractStmt__Group__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1684:1: rule__AbstractStmt__Group__0 : rule__AbstractStmt__Group__0__Impl rule__AbstractStmt__Group__1 ;
    public final void rule__AbstractStmt__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1688:1: ( rule__AbstractStmt__Group__0__Impl rule__AbstractStmt__Group__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1689:2: rule__AbstractStmt__Group__0__Impl rule__AbstractStmt__Group__1
            {
            pushFollow(FOLLOW_rule__AbstractStmt__Group__0__Impl_in_rule__AbstractStmt__Group__03390);
            rule__AbstractStmt__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__AbstractStmt__Group__1_in_rule__AbstractStmt__Group__03393);
            rule__AbstractStmt__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__AbstractStmt__Group__0


    // $ANTLR start rule__AbstractStmt__Group__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1696:1: rule__AbstractStmt__Group__0__Impl : ( ( rule__AbstractStmt__Alternatives_0 ) ) ;
    public final void rule__AbstractStmt__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1700:1: ( ( ( rule__AbstractStmt__Alternatives_0 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1701:1: ( ( rule__AbstractStmt__Alternatives_0 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1701:1: ( ( rule__AbstractStmt__Alternatives_0 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1702:1: ( rule__AbstractStmt__Alternatives_0 )
            {
             before(grammarAccess.getAbstractStmtAccess().getAlternatives_0()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1703:1: ( rule__AbstractStmt__Alternatives_0 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1703:2: rule__AbstractStmt__Alternatives_0
            {
            pushFollow(FOLLOW_rule__AbstractStmt__Alternatives_0_in_rule__AbstractStmt__Group__0__Impl3420);
            rule__AbstractStmt__Alternatives_0();
            _fsp--;


            }

             after(grammarAccess.getAbstractStmtAccess().getAlternatives_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__AbstractStmt__Group__0__Impl


    // $ANTLR start rule__AbstractStmt__Group__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1713:1: rule__AbstractStmt__Group__1 : rule__AbstractStmt__Group__1__Impl ;
    public final void rule__AbstractStmt__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1717:1: ( rule__AbstractStmt__Group__1__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1718:2: rule__AbstractStmt__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__AbstractStmt__Group__1__Impl_in_rule__AbstractStmt__Group__13450);
            rule__AbstractStmt__Group__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__AbstractStmt__Group__1


    // $ANTLR start rule__AbstractStmt__Group__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1724:1: rule__AbstractStmt__Group__1__Impl : ( ( rule__AbstractStmt__Group_1__0 )? ) ;
    public final void rule__AbstractStmt__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1728:1: ( ( ( rule__AbstractStmt__Group_1__0 )? ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1729:1: ( ( rule__AbstractStmt__Group_1__0 )? )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1729:1: ( ( rule__AbstractStmt__Group_1__0 )? )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1730:1: ( rule__AbstractStmt__Group_1__0 )?
            {
             before(grammarAccess.getAbstractStmtAccess().getGroup_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1731:1: ( rule__AbstractStmt__Group_1__0 )?
            int alt15=2;
            int LA15_0 = input.LA(1);

            if ( (LA15_0==29) ) {
                alt15=1;
            }
            switch (alt15) {
                case 1 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1731:2: rule__AbstractStmt__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__AbstractStmt__Group_1__0_in_rule__AbstractStmt__Group__1__Impl3477);
                    rule__AbstractStmt__Group_1__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getAbstractStmtAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__AbstractStmt__Group__1__Impl


    // $ANTLR start rule__AbstractStmt__Group_1__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1745:1: rule__AbstractStmt__Group_1__0 : rule__AbstractStmt__Group_1__0__Impl rule__AbstractStmt__Group_1__1 ;
    public final void rule__AbstractStmt__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1749:1: ( rule__AbstractStmt__Group_1__0__Impl rule__AbstractStmt__Group_1__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1750:2: rule__AbstractStmt__Group_1__0__Impl rule__AbstractStmt__Group_1__1
            {
            pushFollow(FOLLOW_rule__AbstractStmt__Group_1__0__Impl_in_rule__AbstractStmt__Group_1__03512);
            rule__AbstractStmt__Group_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__AbstractStmt__Group_1__1_in_rule__AbstractStmt__Group_1__03515);
            rule__AbstractStmt__Group_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__AbstractStmt__Group_1__0


    // $ANTLR start rule__AbstractStmt__Group_1__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1757:1: rule__AbstractStmt__Group_1__0__Impl : ( '*' ) ;
    public final void rule__AbstractStmt__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1761:1: ( ( '*' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1762:1: ( '*' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1762:1: ( '*' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1763:1: '*'
            {
             before(grammarAccess.getAbstractStmtAccess().getAsteriskKeyword_1_0()); 
            match(input,29,FOLLOW_29_in_rule__AbstractStmt__Group_1__0__Impl3543); 
             after(grammarAccess.getAbstractStmtAccess().getAsteriskKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__AbstractStmt__Group_1__0__Impl


    // $ANTLR start rule__AbstractStmt__Group_1__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1776:1: rule__AbstractStmt__Group_1__1 : rule__AbstractStmt__Group_1__1__Impl ;
    public final void rule__AbstractStmt__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1780:1: ( rule__AbstractStmt__Group_1__1__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1781:2: rule__AbstractStmt__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__AbstractStmt__Group_1__1__Impl_in_rule__AbstractStmt__Group_1__13574);
            rule__AbstractStmt__Group_1__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__AbstractStmt__Group_1__1


    // $ANTLR start rule__AbstractStmt__Group_1__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1787:1: rule__AbstractStmt__Group_1__1__Impl : ( ( rule__AbstractStmt__RepeatAssignment_1_1 ) ) ;
    public final void rule__AbstractStmt__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1791:1: ( ( ( rule__AbstractStmt__RepeatAssignment_1_1 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1792:1: ( ( rule__AbstractStmt__RepeatAssignment_1_1 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1792:1: ( ( rule__AbstractStmt__RepeatAssignment_1_1 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1793:1: ( rule__AbstractStmt__RepeatAssignment_1_1 )
            {
             before(grammarAccess.getAbstractStmtAccess().getRepeatAssignment_1_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1794:1: ( rule__AbstractStmt__RepeatAssignment_1_1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1794:2: rule__AbstractStmt__RepeatAssignment_1_1
            {
            pushFollow(FOLLOW_rule__AbstractStmt__RepeatAssignment_1_1_in_rule__AbstractStmt__Group_1__1__Impl3601);
            rule__AbstractStmt__RepeatAssignment_1_1();
            _fsp--;


            }

             after(grammarAccess.getAbstractStmtAccess().getRepeatAssignment_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__AbstractStmt__Group_1__1__Impl


    // $ANTLR start rule__LoopStmt__Group__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1808:1: rule__LoopStmt__Group__0 : rule__LoopStmt__Group__0__Impl rule__LoopStmt__Group__1 ;
    public final void rule__LoopStmt__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1812:1: ( rule__LoopStmt__Group__0__Impl rule__LoopStmt__Group__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1813:2: rule__LoopStmt__Group__0__Impl rule__LoopStmt__Group__1
            {
            pushFollow(FOLLOW_rule__LoopStmt__Group__0__Impl_in_rule__LoopStmt__Group__03635);
            rule__LoopStmt__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__LoopStmt__Group__1_in_rule__LoopStmt__Group__03638);
            rule__LoopStmt__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__LoopStmt__Group__0


    // $ANTLR start rule__LoopStmt__Group__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1820:1: rule__LoopStmt__Group__0__Impl : ( '[' ) ;
    public final void rule__LoopStmt__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1824:1: ( ( '[' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1825:1: ( '[' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1825:1: ( '[' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1826:1: '['
            {
             before(grammarAccess.getLoopStmtAccess().getLeftSquareBracketKeyword_0()); 
            match(input,30,FOLLOW_30_in_rule__LoopStmt__Group__0__Impl3666); 
             after(grammarAccess.getLoopStmtAccess().getLeftSquareBracketKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__LoopStmt__Group__0__Impl


    // $ANTLR start rule__LoopStmt__Group__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1839:1: rule__LoopStmt__Group__1 : rule__LoopStmt__Group__1__Impl rule__LoopStmt__Group__2 ;
    public final void rule__LoopStmt__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1843:1: ( rule__LoopStmt__Group__1__Impl rule__LoopStmt__Group__2 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1844:2: rule__LoopStmt__Group__1__Impl rule__LoopStmt__Group__2
            {
            pushFollow(FOLLOW_rule__LoopStmt__Group__1__Impl_in_rule__LoopStmt__Group__13697);
            rule__LoopStmt__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__LoopStmt__Group__2_in_rule__LoopStmt__Group__13700);
            rule__LoopStmt__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__LoopStmt__Group__1


    // $ANTLR start rule__LoopStmt__Group__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1851:1: rule__LoopStmt__Group__1__Impl : ( () ) ;
    public final void rule__LoopStmt__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1855:1: ( ( () ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1856:1: ( () )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1856:1: ( () )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1857:1: ()
            {
             before(grammarAccess.getLoopStmtAccess().getLoopStmtAction_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1858:1: ()
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1860:1: 
            {
            }

             after(grammarAccess.getLoopStmtAccess().getLoopStmtAction_1()); 

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__LoopStmt__Group__1__Impl


    // $ANTLR start rule__LoopStmt__Group__2
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1870:1: rule__LoopStmt__Group__2 : rule__LoopStmt__Group__2__Impl rule__LoopStmt__Group__3 ;
    public final void rule__LoopStmt__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1874:1: ( rule__LoopStmt__Group__2__Impl rule__LoopStmt__Group__3 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1875:2: rule__LoopStmt__Group__2__Impl rule__LoopStmt__Group__3
            {
            pushFollow(FOLLOW_rule__LoopStmt__Group__2__Impl_in_rule__LoopStmt__Group__23758);
            rule__LoopStmt__Group__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__LoopStmt__Group__3_in_rule__LoopStmt__Group__23761);
            rule__LoopStmt__Group__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__LoopStmt__Group__2


    // $ANTLR start rule__LoopStmt__Group__2__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1882:1: rule__LoopStmt__Group__2__Impl : ( ( rule__LoopStmt__StmtsAssignment_2 )* ) ;
    public final void rule__LoopStmt__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1886:1: ( ( ( rule__LoopStmt__StmtsAssignment_2 )* ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1887:1: ( ( rule__LoopStmt__StmtsAssignment_2 )* )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1887:1: ( ( rule__LoopStmt__StmtsAssignment_2 )* )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1888:1: ( rule__LoopStmt__StmtsAssignment_2 )*
            {
             before(grammarAccess.getLoopStmtAccess().getStmtsAssignment_2()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1889:1: ( rule__LoopStmt__StmtsAssignment_2 )*
            loop16:
            do {
                int alt16=2;
                int LA16_0 = input.LA(1);

                if ( (LA16_0==RULE_ID||(LA16_0>=11 && LA16_0<=16)||LA16_0==18||LA16_0==30) ) {
                    alt16=1;
                }


                switch (alt16) {
            	case 1 :
            	    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1889:2: rule__LoopStmt__StmtsAssignment_2
            	    {
            	    pushFollow(FOLLOW_rule__LoopStmt__StmtsAssignment_2_in_rule__LoopStmt__Group__2__Impl3788);
            	    rule__LoopStmt__StmtsAssignment_2();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop16;
                }
            } while (true);

             after(grammarAccess.getLoopStmtAccess().getStmtsAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__LoopStmt__Group__2__Impl


    // $ANTLR start rule__LoopStmt__Group__3
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1899:1: rule__LoopStmt__Group__3 : rule__LoopStmt__Group__3__Impl ;
    public final void rule__LoopStmt__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1903:1: ( rule__LoopStmt__Group__3__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1904:2: rule__LoopStmt__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__LoopStmt__Group__3__Impl_in_rule__LoopStmt__Group__33819);
            rule__LoopStmt__Group__3__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__LoopStmt__Group__3


    // $ANTLR start rule__LoopStmt__Group__3__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1910:1: rule__LoopStmt__Group__3__Impl : ( ']' ) ;
    public final void rule__LoopStmt__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1914:1: ( ( ']' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1915:1: ( ']' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1915:1: ( ']' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1916:1: ']'
            {
             before(grammarAccess.getLoopStmtAccess().getRightSquareBracketKeyword_3()); 
            match(input,31,FOLLOW_31_in_rule__LoopStmt__Group__3__Impl3847); 
             after(grammarAccess.getLoopStmtAccess().getRightSquareBracketKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__LoopStmt__Group__3__Impl


    // $ANTLR start rule__MacroCall__Group__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1937:1: rule__MacroCall__Group__0 : rule__MacroCall__Group__0__Impl rule__MacroCall__Group__1 ;
    public final void rule__MacroCall__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1941:1: ( rule__MacroCall__Group__0__Impl rule__MacroCall__Group__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1942:2: rule__MacroCall__Group__0__Impl rule__MacroCall__Group__1
            {
            pushFollow(FOLLOW_rule__MacroCall__Group__0__Impl_in_rule__MacroCall__Group__03886);
            rule__MacroCall__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MacroCall__Group__1_in_rule__MacroCall__Group__03889);
            rule__MacroCall__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group__0


    // $ANTLR start rule__MacroCall__Group__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1949:1: rule__MacroCall__Group__0__Impl : ( ( rule__MacroCall__MacroAssignment_0 ) ) ;
    public final void rule__MacroCall__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1953:1: ( ( ( rule__MacroCall__MacroAssignment_0 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1954:1: ( ( rule__MacroCall__MacroAssignment_0 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1954:1: ( ( rule__MacroCall__MacroAssignment_0 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1955:1: ( rule__MacroCall__MacroAssignment_0 )
            {
             before(grammarAccess.getMacroCallAccess().getMacroAssignment_0()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1956:1: ( rule__MacroCall__MacroAssignment_0 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1956:2: rule__MacroCall__MacroAssignment_0
            {
            pushFollow(FOLLOW_rule__MacroCall__MacroAssignment_0_in_rule__MacroCall__Group__0__Impl3916);
            rule__MacroCall__MacroAssignment_0();
            _fsp--;


            }

             after(grammarAccess.getMacroCallAccess().getMacroAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group__0__Impl


    // $ANTLR start rule__MacroCall__Group__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1966:1: rule__MacroCall__Group__1 : rule__MacroCall__Group__1__Impl ;
    public final void rule__MacroCall__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1970:1: ( rule__MacroCall__Group__1__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1971:2: rule__MacroCall__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__MacroCall__Group__1__Impl_in_rule__MacroCall__Group__13946);
            rule__MacroCall__Group__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group__1


    // $ANTLR start rule__MacroCall__Group__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1977:1: rule__MacroCall__Group__1__Impl : ( ( rule__MacroCall__Group_1__0 )? ) ;
    public final void rule__MacroCall__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1981:1: ( ( ( rule__MacroCall__Group_1__0 )? ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1982:1: ( ( rule__MacroCall__Group_1__0 )? )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1982:1: ( ( rule__MacroCall__Group_1__0 )? )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1983:1: ( rule__MacroCall__Group_1__0 )?
            {
             before(grammarAccess.getMacroCallAccess().getGroup_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1984:1: ( rule__MacroCall__Group_1__0 )?
            int alt17=2;
            int LA17_0 = input.LA(1);

            if ( (LA17_0==26) ) {
                alt17=1;
            }
            switch (alt17) {
                case 1 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1984:2: rule__MacroCall__Group_1__0
                    {
                    pushFollow(FOLLOW_rule__MacroCall__Group_1__0_in_rule__MacroCall__Group__1__Impl3973);
                    rule__MacroCall__Group_1__0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getMacroCallAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group__1__Impl


    // $ANTLR start rule__MacroCall__Group_1__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:1998:1: rule__MacroCall__Group_1__0 : rule__MacroCall__Group_1__0__Impl rule__MacroCall__Group_1__1 ;
    public final void rule__MacroCall__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2002:1: ( rule__MacroCall__Group_1__0__Impl rule__MacroCall__Group_1__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2003:2: rule__MacroCall__Group_1__0__Impl rule__MacroCall__Group_1__1
            {
            pushFollow(FOLLOW_rule__MacroCall__Group_1__0__Impl_in_rule__MacroCall__Group_1__04008);
            rule__MacroCall__Group_1__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MacroCall__Group_1__1_in_rule__MacroCall__Group_1__04011);
            rule__MacroCall__Group_1__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group_1__0


    // $ANTLR start rule__MacroCall__Group_1__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2010:1: rule__MacroCall__Group_1__0__Impl : ( '(' ) ;
    public final void rule__MacroCall__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2014:1: ( ( '(' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2015:1: ( '(' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2015:1: ( '(' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2016:1: '('
            {
             before(grammarAccess.getMacroCallAccess().getLeftParenthesisKeyword_1_0()); 
            match(input,26,FOLLOW_26_in_rule__MacroCall__Group_1__0__Impl4039); 
             after(grammarAccess.getMacroCallAccess().getLeftParenthesisKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group_1__0__Impl


    // $ANTLR start rule__MacroCall__Group_1__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2029:1: rule__MacroCall__Group_1__1 : rule__MacroCall__Group_1__1__Impl rule__MacroCall__Group_1__2 ;
    public final void rule__MacroCall__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2033:1: ( rule__MacroCall__Group_1__1__Impl rule__MacroCall__Group_1__2 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2034:2: rule__MacroCall__Group_1__1__Impl rule__MacroCall__Group_1__2
            {
            pushFollow(FOLLOW_rule__MacroCall__Group_1__1__Impl_in_rule__MacroCall__Group_1__14070);
            rule__MacroCall__Group_1__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MacroCall__Group_1__2_in_rule__MacroCall__Group_1__14073);
            rule__MacroCall__Group_1__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group_1__1


    // $ANTLR start rule__MacroCall__Group_1__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2041:1: rule__MacroCall__Group_1__1__Impl : ( ( rule__MacroCall__ActualsAssignment_1_1 ) ) ;
    public final void rule__MacroCall__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2045:1: ( ( ( rule__MacroCall__ActualsAssignment_1_1 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2046:1: ( ( rule__MacroCall__ActualsAssignment_1_1 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2046:1: ( ( rule__MacroCall__ActualsAssignment_1_1 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2047:1: ( rule__MacroCall__ActualsAssignment_1_1 )
            {
             before(grammarAccess.getMacroCallAccess().getActualsAssignment_1_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2048:1: ( rule__MacroCall__ActualsAssignment_1_1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2048:2: rule__MacroCall__ActualsAssignment_1_1
            {
            pushFollow(FOLLOW_rule__MacroCall__ActualsAssignment_1_1_in_rule__MacroCall__Group_1__1__Impl4100);
            rule__MacroCall__ActualsAssignment_1_1();
            _fsp--;


            }

             after(grammarAccess.getMacroCallAccess().getActualsAssignment_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group_1__1__Impl


    // $ANTLR start rule__MacroCall__Group_1__2
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2058:1: rule__MacroCall__Group_1__2 : rule__MacroCall__Group_1__2__Impl rule__MacroCall__Group_1__3 ;
    public final void rule__MacroCall__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2062:1: ( rule__MacroCall__Group_1__2__Impl rule__MacroCall__Group_1__3 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2063:2: rule__MacroCall__Group_1__2__Impl rule__MacroCall__Group_1__3
            {
            pushFollow(FOLLOW_rule__MacroCall__Group_1__2__Impl_in_rule__MacroCall__Group_1__24130);
            rule__MacroCall__Group_1__2__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MacroCall__Group_1__3_in_rule__MacroCall__Group_1__24133);
            rule__MacroCall__Group_1__3();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group_1__2


    // $ANTLR start rule__MacroCall__Group_1__2__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2070:1: rule__MacroCall__Group_1__2__Impl : ( ( rule__MacroCall__Group_1_2__0 )* ) ;
    public final void rule__MacroCall__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2074:1: ( ( ( rule__MacroCall__Group_1_2__0 )* ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2075:1: ( ( rule__MacroCall__Group_1_2__0 )* )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2075:1: ( ( rule__MacroCall__Group_1_2__0 )* )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2076:1: ( rule__MacroCall__Group_1_2__0 )*
            {
             before(grammarAccess.getMacroCallAccess().getGroup_1_2()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2077:1: ( rule__MacroCall__Group_1_2__0 )*
            loop18:
            do {
                int alt18=2;
                int LA18_0 = input.LA(1);

                if ( (LA18_0==15) ) {
                    alt18=1;
                }


                switch (alt18) {
            	case 1 :
            	    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2077:2: rule__MacroCall__Group_1_2__0
            	    {
            	    pushFollow(FOLLOW_rule__MacroCall__Group_1_2__0_in_rule__MacroCall__Group_1__2__Impl4160);
            	    rule__MacroCall__Group_1_2__0();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop18;
                }
            } while (true);

             after(grammarAccess.getMacroCallAccess().getGroup_1_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group_1__2__Impl


    // $ANTLR start rule__MacroCall__Group_1__3
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2087:1: rule__MacroCall__Group_1__3 : rule__MacroCall__Group_1__3__Impl ;
    public final void rule__MacroCall__Group_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2091:1: ( rule__MacroCall__Group_1__3__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2092:2: rule__MacroCall__Group_1__3__Impl
            {
            pushFollow(FOLLOW_rule__MacroCall__Group_1__3__Impl_in_rule__MacroCall__Group_1__34191);
            rule__MacroCall__Group_1__3__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group_1__3


    // $ANTLR start rule__MacroCall__Group_1__3__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2098:1: rule__MacroCall__Group_1__3__Impl : ( ')' ) ;
    public final void rule__MacroCall__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2102:1: ( ( ')' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2103:1: ( ')' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2103:1: ( ')' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2104:1: ')'
            {
             before(grammarAccess.getMacroCallAccess().getRightParenthesisKeyword_1_3()); 
            match(input,27,FOLLOW_27_in_rule__MacroCall__Group_1__3__Impl4219); 
             after(grammarAccess.getMacroCallAccess().getRightParenthesisKeyword_1_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group_1__3__Impl


    // $ANTLR start rule__MacroCall__Group_1_2__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2125:1: rule__MacroCall__Group_1_2__0 : rule__MacroCall__Group_1_2__0__Impl rule__MacroCall__Group_1_2__1 ;
    public final void rule__MacroCall__Group_1_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2129:1: ( rule__MacroCall__Group_1_2__0__Impl rule__MacroCall__Group_1_2__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2130:2: rule__MacroCall__Group_1_2__0__Impl rule__MacroCall__Group_1_2__1
            {
            pushFollow(FOLLOW_rule__MacroCall__Group_1_2__0__Impl_in_rule__MacroCall__Group_1_2__04258);
            rule__MacroCall__Group_1_2__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__MacroCall__Group_1_2__1_in_rule__MacroCall__Group_1_2__04261);
            rule__MacroCall__Group_1_2__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group_1_2__0


    // $ANTLR start rule__MacroCall__Group_1_2__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2137:1: rule__MacroCall__Group_1_2__0__Impl : ( ',' ) ;
    public final void rule__MacroCall__Group_1_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2141:1: ( ( ',' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2142:1: ( ',' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2142:1: ( ',' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2143:1: ','
            {
             before(grammarAccess.getMacroCallAccess().getCommaKeyword_1_2_0()); 
            match(input,15,FOLLOW_15_in_rule__MacroCall__Group_1_2__0__Impl4289); 
             after(grammarAccess.getMacroCallAccess().getCommaKeyword_1_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group_1_2__0__Impl


    // $ANTLR start rule__MacroCall__Group_1_2__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2156:1: rule__MacroCall__Group_1_2__1 : rule__MacroCall__Group_1_2__1__Impl ;
    public final void rule__MacroCall__Group_1_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2160:1: ( rule__MacroCall__Group_1_2__1__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2161:2: rule__MacroCall__Group_1_2__1__Impl
            {
            pushFollow(FOLLOW_rule__MacroCall__Group_1_2__1__Impl_in_rule__MacroCall__Group_1_2__14320);
            rule__MacroCall__Group_1_2__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group_1_2__1


    // $ANTLR start rule__MacroCall__Group_1_2__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2167:1: rule__MacroCall__Group_1_2__1__Impl : ( ( rule__MacroCall__ActualsAssignment_1_2_1 ) ) ;
    public final void rule__MacroCall__Group_1_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2171:1: ( ( ( rule__MacroCall__ActualsAssignment_1_2_1 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2172:1: ( ( rule__MacroCall__ActualsAssignment_1_2_1 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2172:1: ( ( rule__MacroCall__ActualsAssignment_1_2_1 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2173:1: ( rule__MacroCall__ActualsAssignment_1_2_1 )
            {
             before(grammarAccess.getMacroCallAccess().getActualsAssignment_1_2_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2174:1: ( rule__MacroCall__ActualsAssignment_1_2_1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2174:2: rule__MacroCall__ActualsAssignment_1_2_1
            {
            pushFollow(FOLLOW_rule__MacroCall__ActualsAssignment_1_2_1_in_rule__MacroCall__Group_1_2__1__Impl4347);
            rule__MacroCall__ActualsAssignment_1_2_1();
            _fsp--;


            }

             after(grammarAccess.getMacroCallAccess().getActualsAssignment_1_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__Group_1_2__1__Impl


    // $ANTLR start rule__SignedInt__Group__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2188:1: rule__SignedInt__Group__0 : rule__SignedInt__Group__0__Impl rule__SignedInt__Group__1 ;
    public final void rule__SignedInt__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2192:1: ( rule__SignedInt__Group__0__Impl rule__SignedInt__Group__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2193:2: rule__SignedInt__Group__0__Impl rule__SignedInt__Group__1
            {
            pushFollow(FOLLOW_rule__SignedInt__Group__0__Impl_in_rule__SignedInt__Group__04381);
            rule__SignedInt__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__SignedInt__Group__1_in_rule__SignedInt__Group__04384);
            rule__SignedInt__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SignedInt__Group__0


    // $ANTLR start rule__SignedInt__Group__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2200:1: rule__SignedInt__Group__0__Impl : ( ( rule__SignedInt__SignAssignment_0 )? ) ;
    public final void rule__SignedInt__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2204:1: ( ( ( rule__SignedInt__SignAssignment_0 )? ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2205:1: ( ( rule__SignedInt__SignAssignment_0 )? )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2205:1: ( ( rule__SignedInt__SignAssignment_0 )? )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2206:1: ( rule__SignedInt__SignAssignment_0 )?
            {
             before(grammarAccess.getSignedIntAccess().getSignAssignment_0()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2207:1: ( rule__SignedInt__SignAssignment_0 )?
            int alt19=2;
            int LA19_0 = input.LA(1);

            if ( ((LA19_0>=11 && LA19_0<=12)) ) {
                alt19=1;
            }
            switch (alt19) {
                case 1 :
                    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2207:2: rule__SignedInt__SignAssignment_0
                    {
                    pushFollow(FOLLOW_rule__SignedInt__SignAssignment_0_in_rule__SignedInt__Group__0__Impl4411);
                    rule__SignedInt__SignAssignment_0();
                    _fsp--;


                    }
                    break;

            }

             after(grammarAccess.getSignedIntAccess().getSignAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SignedInt__Group__0__Impl


    // $ANTLR start rule__SignedInt__Group__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2217:1: rule__SignedInt__Group__1 : rule__SignedInt__Group__1__Impl ;
    public final void rule__SignedInt__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2221:1: ( rule__SignedInt__Group__1__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2222:2: rule__SignedInt__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__SignedInt__Group__1__Impl_in_rule__SignedInt__Group__14442);
            rule__SignedInt__Group__1__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SignedInt__Group__1


    // $ANTLR start rule__SignedInt__Group__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2228:1: rule__SignedInt__Group__1__Impl : ( ( rule__SignedInt__ValueAssignment_1 ) ) ;
    public final void rule__SignedInt__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2232:1: ( ( ( rule__SignedInt__ValueAssignment_1 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2233:1: ( ( rule__SignedInt__ValueAssignment_1 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2233:1: ( ( rule__SignedInt__ValueAssignment_1 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2234:1: ( rule__SignedInt__ValueAssignment_1 )
            {
             before(grammarAccess.getSignedIntAccess().getValueAssignment_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2235:1: ( rule__SignedInt__ValueAssignment_1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2235:2: rule__SignedInt__ValueAssignment_1
            {
            pushFollow(FOLLOW_rule__SignedInt__ValueAssignment_1_in_rule__SignedInt__Group__1__Impl4469);
            rule__SignedInt__ValueAssignment_1();
            _fsp--;


            }

             after(grammarAccess.getSignedIntAccess().getValueAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SignedInt__Group__1__Impl


    // $ANTLR start rule__BlockStmt__Group__0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2249:1: rule__BlockStmt__Group__0 : rule__BlockStmt__Group__0__Impl rule__BlockStmt__Group__1 ;
    public final void rule__BlockStmt__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2253:1: ( rule__BlockStmt__Group__0__Impl rule__BlockStmt__Group__1 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2254:2: rule__BlockStmt__Group__0__Impl rule__BlockStmt__Group__1
            {
            pushFollow(FOLLOW_rule__BlockStmt__Group__0__Impl_in_rule__BlockStmt__Group__04503);
            rule__BlockStmt__Group__0__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__BlockStmt__Group__1_in_rule__BlockStmt__Group__04506);
            rule__BlockStmt__Group__1();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BlockStmt__Group__0


    // $ANTLR start rule__BlockStmt__Group__0__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2261:1: rule__BlockStmt__Group__0__Impl : ( '{' ) ;
    public final void rule__BlockStmt__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2265:1: ( ( '{' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2266:1: ( '{' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2266:1: ( '{' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2267:1: '{'
            {
             before(grammarAccess.getBlockStmtAccess().getLeftCurlyBracketKeyword_0()); 
            match(input,18,FOLLOW_18_in_rule__BlockStmt__Group__0__Impl4534); 
             after(grammarAccess.getBlockStmtAccess().getLeftCurlyBracketKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BlockStmt__Group__0__Impl


    // $ANTLR start rule__BlockStmt__Group__1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2280:1: rule__BlockStmt__Group__1 : rule__BlockStmt__Group__1__Impl rule__BlockStmt__Group__2 ;
    public final void rule__BlockStmt__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2284:1: ( rule__BlockStmt__Group__1__Impl rule__BlockStmt__Group__2 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2285:2: rule__BlockStmt__Group__1__Impl rule__BlockStmt__Group__2
            {
            pushFollow(FOLLOW_rule__BlockStmt__Group__1__Impl_in_rule__BlockStmt__Group__14565);
            rule__BlockStmt__Group__1__Impl();
            _fsp--;

            pushFollow(FOLLOW_rule__BlockStmt__Group__2_in_rule__BlockStmt__Group__14568);
            rule__BlockStmt__Group__2();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BlockStmt__Group__1


    // $ANTLR start rule__BlockStmt__Group__1__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2292:1: rule__BlockStmt__Group__1__Impl : ( ( rule__BlockStmt__StmtsAssignment_1 )* ) ;
    public final void rule__BlockStmt__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2296:1: ( ( ( rule__BlockStmt__StmtsAssignment_1 )* ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2297:1: ( ( rule__BlockStmt__StmtsAssignment_1 )* )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2297:1: ( ( rule__BlockStmt__StmtsAssignment_1 )* )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2298:1: ( rule__BlockStmt__StmtsAssignment_1 )*
            {
             before(grammarAccess.getBlockStmtAccess().getStmtsAssignment_1()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2299:1: ( rule__BlockStmt__StmtsAssignment_1 )*
            loop20:
            do {
                int alt20=2;
                int LA20_0 = input.LA(1);

                if ( (LA20_0==RULE_ID||(LA20_0>=11 && LA20_0<=16)||LA20_0==18||LA20_0==30) ) {
                    alt20=1;
                }


                switch (alt20) {
            	case 1 :
            	    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2299:2: rule__BlockStmt__StmtsAssignment_1
            	    {
            	    pushFollow(FOLLOW_rule__BlockStmt__StmtsAssignment_1_in_rule__BlockStmt__Group__1__Impl4595);
            	    rule__BlockStmt__StmtsAssignment_1();
            	    _fsp--;


            	    }
            	    break;

            	default :
            	    break loop20;
                }
            } while (true);

             after(grammarAccess.getBlockStmtAccess().getStmtsAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BlockStmt__Group__1__Impl


    // $ANTLR start rule__BlockStmt__Group__2
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2309:1: rule__BlockStmt__Group__2 : rule__BlockStmt__Group__2__Impl ;
    public final void rule__BlockStmt__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2313:1: ( rule__BlockStmt__Group__2__Impl )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2314:2: rule__BlockStmt__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__BlockStmt__Group__2__Impl_in_rule__BlockStmt__Group__24626);
            rule__BlockStmt__Group__2__Impl();
            _fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BlockStmt__Group__2


    // $ANTLR start rule__BlockStmt__Group__2__Impl
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2320:1: rule__BlockStmt__Group__2__Impl : ( '}' ) ;
    public final void rule__BlockStmt__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2324:1: ( ( '}' ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2325:1: ( '}' )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2325:1: ( '}' )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2326:1: '}'
            {
             before(grammarAccess.getBlockStmtAccess().getRightCurlyBracketKeyword_2()); 
            match(input,19,FOLLOW_19_in_rule__BlockStmt__Group__2__Impl4654); 
             after(grammarAccess.getBlockStmtAccess().getRightCurlyBracketKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BlockStmt__Group__2__Impl


    // $ANTLR start rule__BrainfuckProgram__NameAssignment_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2346:1: rule__BrainfuckProgram__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__BrainfuckProgram__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2350:1: ( ( RULE_ID ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2351:1: ( RULE_ID )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2351:1: ( RULE_ID )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2352:1: RULE_ID
            {
             before(grammarAccess.getBrainfuckProgramAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__BrainfuckProgram__NameAssignment_14696); 
             after(grammarAccess.getBrainfuckProgramAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__NameAssignment_1


    // $ANTLR start rule__BrainfuckProgram__SymbolsAssignment_3_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2361:1: rule__BrainfuckProgram__SymbolsAssignment_3_1 : ( ruleSymbolDef ) ;
    public final void rule__BrainfuckProgram__SymbolsAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2365:1: ( ( ruleSymbolDef ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2366:1: ( ruleSymbolDef )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2366:1: ( ruleSymbolDef )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2367:1: ruleSymbolDef
            {
             before(grammarAccess.getBrainfuckProgramAccess().getSymbolsSymbolDefParserRuleCall_3_1_0()); 
            pushFollow(FOLLOW_ruleSymbolDef_in_rule__BrainfuckProgram__SymbolsAssignment_3_14727);
            ruleSymbolDef();
            _fsp--;

             after(grammarAccess.getBrainfuckProgramAccess().getSymbolsSymbolDefParserRuleCall_3_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__SymbolsAssignment_3_1


    // $ANTLR start rule__BrainfuckProgram__MacrosAssignment_4_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2376:1: rule__BrainfuckProgram__MacrosAssignment_4_1 : ( ruleAbstractMacroDef ) ;
    public final void rule__BrainfuckProgram__MacrosAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2380:1: ( ( ruleAbstractMacroDef ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2381:1: ( ruleAbstractMacroDef )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2381:1: ( ruleAbstractMacroDef )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2382:1: ruleAbstractMacroDef
            {
             before(grammarAccess.getBrainfuckProgramAccess().getMacrosAbstractMacroDefParserRuleCall_4_1_0()); 
            pushFollow(FOLLOW_ruleAbstractMacroDef_in_rule__BrainfuckProgram__MacrosAssignment_4_14758);
            ruleAbstractMacroDef();
            _fsp--;

             after(grammarAccess.getBrainfuckProgramAccess().getMacrosAbstractMacroDefParserRuleCall_4_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__MacrosAssignment_4_1


    // $ANTLR start rule__BrainfuckProgram__StmtsAssignment_5
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2391:1: rule__BrainfuckProgram__StmtsAssignment_5 : ( ruleAbstractStmt ) ;
    public final void rule__BrainfuckProgram__StmtsAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2395:1: ( ( ruleAbstractStmt ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2396:1: ( ruleAbstractStmt )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2396:1: ( ruleAbstractStmt )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2397:1: ruleAbstractStmt
            {
             before(grammarAccess.getBrainfuckProgramAccess().getStmtsAbstractStmtParserRuleCall_5_0()); 
            pushFollow(FOLLOW_ruleAbstractStmt_in_rule__BrainfuckProgram__StmtsAssignment_54789);
            ruleAbstractStmt();
            _fsp--;

             after(grammarAccess.getBrainfuckProgramAccess().getStmtsAbstractStmtParserRuleCall_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BrainfuckProgram__StmtsAssignment_5


    // $ANTLR start rule__SymbolDef__NameAssignment_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2406:1: rule__SymbolDef__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__SymbolDef__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2410:1: ( ( RULE_ID ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2411:1: ( RULE_ID )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2411:1: ( RULE_ID )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2412:1: RULE_ID
            {
             before(grammarAccess.getSymbolDefAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__SymbolDef__NameAssignment_14820); 
             after(grammarAccess.getSymbolDefAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SymbolDef__NameAssignment_1


    // $ANTLR start rule__SymbolDef__ValueAssignment_3
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2421:1: rule__SymbolDef__ValueAssignment_3 : ( ruleSignedInt ) ;
    public final void rule__SymbolDef__ValueAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2425:1: ( ( ruleSignedInt ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2426:1: ( ruleSignedInt )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2426:1: ( ruleSignedInt )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2427:1: ruleSignedInt
            {
             before(grammarAccess.getSymbolDefAccess().getValueSignedIntParserRuleCall_3_0()); 
            pushFollow(FOLLOW_ruleSignedInt_in_rule__SymbolDef__ValueAssignment_34851);
            ruleSignedInt();
            _fsp--;

             after(grammarAccess.getSymbolDefAccess().getValueSignedIntParserRuleCall_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SymbolDef__ValueAssignment_3


    // $ANTLR start rule__Region__NameAssignment_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2436:1: rule__Region__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Region__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2440:1: ( ( RULE_ID ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2441:1: ( RULE_ID )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2441:1: ( RULE_ID )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2442:1: RULE_ID
            {
             before(grammarAccess.getRegionAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Region__NameAssignment_14882); 
             after(grammarAccess.getRegionAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Region__NameAssignment_1


    // $ANTLR start rule__Region__ElementsAssignment_3
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2451:1: rule__Region__ElementsAssignment_3 : ( ruleAbstractMacroDef ) ;
    public final void rule__Region__ElementsAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2455:1: ( ( ruleAbstractMacroDef ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2456:1: ( ruleAbstractMacroDef )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2456:1: ( ruleAbstractMacroDef )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2457:1: ruleAbstractMacroDef
            {
             before(grammarAccess.getRegionAccess().getElementsAbstractMacroDefParserRuleCall_3_0()); 
            pushFollow(FOLLOW_ruleAbstractMacroDef_in_rule__Region__ElementsAssignment_34913);
            ruleAbstractMacroDef();
            _fsp--;

             after(grammarAccess.getRegionAccess().getElementsAbstractMacroDefParserRuleCall_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Region__ElementsAssignment_3


    // $ANTLR start rule__MacroDef__NameAssignment_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2466:1: rule__MacroDef__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__MacroDef__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2470:1: ( ( RULE_ID ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2471:1: ( RULE_ID )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2471:1: ( RULE_ID )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2472:1: RULE_ID
            {
             before(grammarAccess.getMacroDefAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__MacroDef__NameAssignment_14944); 
             after(grammarAccess.getMacroDefAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__NameAssignment_1


    // $ANTLR start rule__MacroDef__ParamsAssignment_2_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2481:1: rule__MacroDef__ParamsAssignment_2_1 : ( ruleParamDef ) ;
    public final void rule__MacroDef__ParamsAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2485:1: ( ( ruleParamDef ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2486:1: ( ruleParamDef )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2486:1: ( ruleParamDef )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2487:1: ruleParamDef
            {
             before(grammarAccess.getMacroDefAccess().getParamsParamDefParserRuleCall_2_1_0()); 
            pushFollow(FOLLOW_ruleParamDef_in_rule__MacroDef__ParamsAssignment_2_14975);
            ruleParamDef();
            _fsp--;

             after(grammarAccess.getMacroDefAccess().getParamsParamDefParserRuleCall_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__ParamsAssignment_2_1


    // $ANTLR start rule__MacroDef__ParamsAssignment_2_2_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2496:1: rule__MacroDef__ParamsAssignment_2_2_1 : ( ruleParamDef ) ;
    public final void rule__MacroDef__ParamsAssignment_2_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2500:1: ( ( ruleParamDef ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2501:1: ( ruleParamDef )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2501:1: ( ruleParamDef )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2502:1: ruleParamDef
            {
             before(grammarAccess.getMacroDefAccess().getParamsParamDefParserRuleCall_2_2_1_0()); 
            pushFollow(FOLLOW_ruleParamDef_in_rule__MacroDef__ParamsAssignment_2_2_15006);
            ruleParamDef();
            _fsp--;

             after(grammarAccess.getMacroDefAccess().getParamsParamDefParserRuleCall_2_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__ParamsAssignment_2_2_1


    // $ANTLR start rule__MacroDef__StmtsAssignment_4
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2511:1: rule__MacroDef__StmtsAssignment_4 : ( ruleAbstractStmt ) ;
    public final void rule__MacroDef__StmtsAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2515:1: ( ( ruleAbstractStmt ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2516:1: ( ruleAbstractStmt )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2516:1: ( ruleAbstractStmt )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2517:1: ruleAbstractStmt
            {
             before(grammarAccess.getMacroDefAccess().getStmtsAbstractStmtParserRuleCall_4_0()); 
            pushFollow(FOLLOW_ruleAbstractStmt_in_rule__MacroDef__StmtsAssignment_45037);
            ruleAbstractStmt();
            _fsp--;

             after(grammarAccess.getMacroDefAccess().getStmtsAbstractStmtParserRuleCall_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroDef__StmtsAssignment_4


    // $ANTLR start rule__ParamDef__NameAssignment_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2526:1: rule__ParamDef__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__ParamDef__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2530:1: ( ( RULE_ID ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2531:1: ( RULE_ID )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2531:1: ( RULE_ID )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2532:1: RULE_ID
            {
             before(grammarAccess.getParamDefAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__ParamDef__NameAssignment_15068); 
             after(grammarAccess.getParamDefAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ParamDef__NameAssignment_1


    // $ANTLR start rule__AbstractStmt__RepeatAssignment_1_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2541:1: rule__AbstractStmt__RepeatAssignment_1_1 : ( ruleBfValue ) ;
    public final void rule__AbstractStmt__RepeatAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2545:1: ( ( ruleBfValue ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2546:1: ( ruleBfValue )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2546:1: ( ruleBfValue )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2547:1: ruleBfValue
            {
             before(grammarAccess.getAbstractStmtAccess().getRepeatBfValueParserRuleCall_1_1_0()); 
            pushFollow(FOLLOW_ruleBfValue_in_rule__AbstractStmt__RepeatAssignment_1_15099);
            ruleBfValue();
            _fsp--;

             after(grammarAccess.getAbstractStmtAccess().getRepeatBfValueParserRuleCall_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__AbstractStmt__RepeatAssignment_1_1


    // $ANTLR start rule__SimpleStmt__KindAssignment
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2556:1: rule__SimpleStmt__KindAssignment : ( ruleSimpleStmtKind ) ;
    public final void rule__SimpleStmt__KindAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2560:1: ( ( ruleSimpleStmtKind ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2561:1: ( ruleSimpleStmtKind )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2561:1: ( ruleSimpleStmtKind )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2562:1: ruleSimpleStmtKind
            {
             before(grammarAccess.getSimpleStmtAccess().getKindSimpleStmtKindEnumRuleCall_0()); 
            pushFollow(FOLLOW_ruleSimpleStmtKind_in_rule__SimpleStmt__KindAssignment5130);
            ruleSimpleStmtKind();
            _fsp--;

             after(grammarAccess.getSimpleStmtAccess().getKindSimpleStmtKindEnumRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SimpleStmt__KindAssignment


    // $ANTLR start rule__LoopStmt__StmtsAssignment_2
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2571:1: rule__LoopStmt__StmtsAssignment_2 : ( ruleAbstractStmt ) ;
    public final void rule__LoopStmt__StmtsAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2575:1: ( ( ruleAbstractStmt ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2576:1: ( ruleAbstractStmt )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2576:1: ( ruleAbstractStmt )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2577:1: ruleAbstractStmt
            {
             before(grammarAccess.getLoopStmtAccess().getStmtsAbstractStmtParserRuleCall_2_0()); 
            pushFollow(FOLLOW_ruleAbstractStmt_in_rule__LoopStmt__StmtsAssignment_25161);
            ruleAbstractStmt();
            _fsp--;

             after(grammarAccess.getLoopStmtAccess().getStmtsAbstractStmtParserRuleCall_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__LoopStmt__StmtsAssignment_2


    // $ANTLR start rule__MacroCall__MacroAssignment_0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2586:1: rule__MacroCall__MacroAssignment_0 : ( ( RULE_ID ) ) ;
    public final void rule__MacroCall__MacroAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2590:1: ( ( ( RULE_ID ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2591:1: ( ( RULE_ID ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2591:1: ( ( RULE_ID ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2592:1: ( RULE_ID )
            {
             before(grammarAccess.getMacroCallAccess().getMacroMacroDefCrossReference_0_0()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2593:1: ( RULE_ID )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2594:1: RULE_ID
            {
             before(grammarAccess.getMacroCallAccess().getMacroMacroDefIDTerminalRuleCall_0_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__MacroCall__MacroAssignment_05196); 
             after(grammarAccess.getMacroCallAccess().getMacroMacroDefIDTerminalRuleCall_0_0_1()); 

            }

             after(grammarAccess.getMacroCallAccess().getMacroMacroDefCrossReference_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__MacroAssignment_0


    // $ANTLR start rule__MacroCall__ActualsAssignment_1_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2605:1: rule__MacroCall__ActualsAssignment_1_1 : ( ruleBfValue ) ;
    public final void rule__MacroCall__ActualsAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2609:1: ( ( ruleBfValue ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2610:1: ( ruleBfValue )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2610:1: ( ruleBfValue )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2611:1: ruleBfValue
            {
             before(grammarAccess.getMacroCallAccess().getActualsBfValueParserRuleCall_1_1_0()); 
            pushFollow(FOLLOW_ruleBfValue_in_rule__MacroCall__ActualsAssignment_1_15231);
            ruleBfValue();
            _fsp--;

             after(grammarAccess.getMacroCallAccess().getActualsBfValueParserRuleCall_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__ActualsAssignment_1_1


    // $ANTLR start rule__MacroCall__ActualsAssignment_1_2_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2620:1: rule__MacroCall__ActualsAssignment_1_2_1 : ( ruleBfValue ) ;
    public final void rule__MacroCall__ActualsAssignment_1_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2624:1: ( ( ruleBfValue ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2625:1: ( ruleBfValue )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2625:1: ( ruleBfValue )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2626:1: ruleBfValue
            {
             before(grammarAccess.getMacroCallAccess().getActualsBfValueParserRuleCall_1_2_1_0()); 
            pushFollow(FOLLOW_ruleBfValue_in_rule__MacroCall__ActualsAssignment_1_2_15262);
            ruleBfValue();
            _fsp--;

             after(grammarAccess.getMacroCallAccess().getActualsBfValueParserRuleCall_1_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__MacroCall__ActualsAssignment_1_2_1


    // $ANTLR start rule__BfValue__ValAssignment_0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2635:1: rule__BfValue__ValAssignment_0 : ( ruleSignedInt ) ;
    public final void rule__BfValue__ValAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2639:1: ( ( ruleSignedInt ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2640:1: ( ruleSignedInt )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2640:1: ( ruleSignedInt )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2641:1: ruleSignedInt
            {
             before(grammarAccess.getBfValueAccess().getValSignedIntParserRuleCall_0_0()); 
            pushFollow(FOLLOW_ruleSignedInt_in_rule__BfValue__ValAssignment_05293);
            ruleSignedInt();
            _fsp--;

             after(grammarAccess.getBfValueAccess().getValSignedIntParserRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BfValue__ValAssignment_0


    // $ANTLR start rule__BfValue__RefAssignment_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2650:1: rule__BfValue__RefAssignment_1 : ( ( RULE_ID ) ) ;
    public final void rule__BfValue__RefAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2654:1: ( ( ( RULE_ID ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2655:1: ( ( RULE_ID ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2655:1: ( ( RULE_ID ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2656:1: ( RULE_ID )
            {
             before(grammarAccess.getBfValueAccess().getRefAbstractParamDefCrossReference_1_0()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2657:1: ( RULE_ID )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2658:1: RULE_ID
            {
             before(grammarAccess.getBfValueAccess().getRefAbstractParamDefIDTerminalRuleCall_1_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__BfValue__RefAssignment_15328); 
             after(grammarAccess.getBfValueAccess().getRefAbstractParamDefIDTerminalRuleCall_1_0_1()); 

            }

             after(grammarAccess.getBfValueAccess().getRefAbstractParamDefCrossReference_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BfValue__RefAssignment_1


    // $ANTLR start rule__SignedInt__SignAssignment_0
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2669:1: rule__SignedInt__SignAssignment_0 : ( ( rule__SignedInt__SignAlternatives_0_0 ) ) ;
    public final void rule__SignedInt__SignAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2673:1: ( ( ( rule__SignedInt__SignAlternatives_0_0 ) ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2674:1: ( ( rule__SignedInt__SignAlternatives_0_0 ) )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2674:1: ( ( rule__SignedInt__SignAlternatives_0_0 ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2675:1: ( rule__SignedInt__SignAlternatives_0_0 )
            {
             before(grammarAccess.getSignedIntAccess().getSignAlternatives_0_0()); 
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2676:1: ( rule__SignedInt__SignAlternatives_0_0 )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2676:2: rule__SignedInt__SignAlternatives_0_0
            {
            pushFollow(FOLLOW_rule__SignedInt__SignAlternatives_0_0_in_rule__SignedInt__SignAssignment_05363);
            rule__SignedInt__SignAlternatives_0_0();
            _fsp--;


            }

             after(grammarAccess.getSignedIntAccess().getSignAlternatives_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SignedInt__SignAssignment_0


    // $ANTLR start rule__SignedInt__ValueAssignment_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2685:1: rule__SignedInt__ValueAssignment_1 : ( RULE_INT ) ;
    public final void rule__SignedInt__ValueAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2689:1: ( ( RULE_INT ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2690:1: ( RULE_INT )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2690:1: ( RULE_INT )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2691:1: RULE_INT
            {
             before(grammarAccess.getSignedIntAccess().getValueINTTerminalRuleCall_1_0()); 
            match(input,RULE_INT,FOLLOW_RULE_INT_in_rule__SignedInt__ValueAssignment_15396); 
             after(grammarAccess.getSignedIntAccess().getValueINTTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__SignedInt__ValueAssignment_1


    // $ANTLR start rule__BlockStmt__StmtsAssignment_1
    // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2700:1: rule__BlockStmt__StmtsAssignment_1 : ( ruleAbstractStmt ) ;
    public final void rule__BlockStmt__StmtsAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2704:1: ( ( ruleAbstractStmt ) )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2705:1: ( ruleAbstractStmt )
            {
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2705:1: ( ruleAbstractStmt )
            // ../net.maylander.bfcpublog.bfwb.ui/src-gen/net/maylander/bfcpublog/bfwb/ui/contentassist/antlr/internal/InternalBrainfuckLanguage.g:2706:1: ruleAbstractStmt
            {
             before(grammarAccess.getBlockStmtAccess().getStmtsAbstractStmtParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleAbstractStmt_in_rule__BlockStmt__StmtsAssignment_15427);
            ruleAbstractStmt();
            _fsp--;

             after(grammarAccess.getBlockStmtAccess().getStmtsAbstractStmtParserRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__BlockStmt__StmtsAssignment_1


 

    public static final BitSet FOLLOW_ruleBrainfuckProgram_in_entryRuleBrainfuckProgram61 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleBrainfuckProgram68 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group__0_in_ruleBrainfuckProgram94 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSymbolDef_in_entryRuleSymbolDef121 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSymbolDef128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SymbolDef__Group__0_in_ruleSymbolDef154 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractMacroDef_in_entryRuleAbstractMacroDef181 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAbstractMacroDef188 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AbstractMacroDef__Alternatives_in_ruleAbstractMacroDef214 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRegion_in_entryRuleRegion241 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRegion248 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Region__Group__0_in_ruleRegion274 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMacroDef_in_entryRuleMacroDef301 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMacroDef308 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__Group__0_in_ruleMacroDef334 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleParamDef_in_entryRuleParamDef361 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleParamDef368 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ParamDef__Group__0_in_ruleParamDef394 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractStmt_in_entryRuleAbstractStmt421 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAbstractStmt428 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AbstractStmt__Group__0_in_ruleAbstractStmt454 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSimpleStmt_in_entryRuleSimpleStmt481 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSimpleStmt488 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SimpleStmt__KindAssignment_in_ruleSimpleStmt514 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLoopStmt_in_entryRuleLoopStmt541 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleLoopStmt548 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LoopStmt__Group__0_in_ruleLoopStmt574 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMacroCall_in_entryRuleMacroCall601 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMacroCall608 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroCall__Group__0_in_ruleMacroCall634 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBfValue_in_entryRuleBfValue661 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleBfValue668 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BfValue__Alternatives_in_ruleBfValue694 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSignedInt_in_entryRuleSignedInt721 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSignedInt728 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SignedInt__Group__0_in_ruleSignedInt754 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBlockStmt_in_entryRuleBlockStmt783 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleBlockStmt790 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BlockStmt__Group__0_in_ruleBlockStmt816 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SimpleStmtKind__Alternatives_in_ruleSimpleStmtKind853 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMacroDef_in_rule__AbstractMacroDef__Alternatives888 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRegion_in_rule__AbstractMacroDef__Alternatives905 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSimpleStmt_in_rule__AbstractStmt__Alternatives_0937 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLoopStmt_in_rule__AbstractStmt__Alternatives_0954 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMacroCall_in_rule__AbstractStmt__Alternatives_0971 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBlockStmt_in_rule__AbstractStmt__Alternatives_0988 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BfValue__ValAssignment_0_in_rule__BfValue__Alternatives1020 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BfValue__RefAssignment_1_in_rule__BfValue__Alternatives1038 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_rule__SignedInt__SignAlternatives_0_01072 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__SignedInt__SignAlternatives_0_01092 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_rule__SimpleStmtKind__Alternatives1128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__SimpleStmtKind__Alternatives1149 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__SimpleStmtKind__Alternatives1170 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_rule__SimpleStmtKind__Alternatives1191 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__SimpleStmtKind__Alternatives1212 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_rule__SimpleStmtKind__Alternatives1233 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group__0__Impl_in_rule__BrainfuckProgram__Group__01266 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group__1_in_rule__BrainfuckProgram__Group__01269 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__BrainfuckProgram__Group__0__Impl1297 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group__1__Impl_in_rule__BrainfuckProgram__Group__11328 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group__2_in_rule__BrainfuckProgram__Group__11331 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__NameAssignment_1_in_rule__BrainfuckProgram__Group__1__Impl1358 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group__2__Impl_in_rule__BrainfuckProgram__Group__21388 = new BitSet(new long[]{0x00000000403DF810L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group__3_in_rule__BrainfuckProgram__Group__21391 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__BrainfuckProgram__Group__2__Impl1419 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group__3__Impl_in_rule__BrainfuckProgram__Group__31450 = new BitSet(new long[]{0x00000000402DF810L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group__4_in_rule__BrainfuckProgram__Group__31453 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group_3__0_in_rule__BrainfuckProgram__Group__3__Impl1480 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group__4__Impl_in_rule__BrainfuckProgram__Group__41511 = new BitSet(new long[]{0x00000000400DF810L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group__5_in_rule__BrainfuckProgram__Group__41514 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group_4__0_in_rule__BrainfuckProgram__Group__4__Impl1541 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group__5__Impl_in_rule__BrainfuckProgram__Group__51572 = new BitSet(new long[]{0x0000000000080000L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group__6_in_rule__BrainfuckProgram__Group__51575 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__StmtsAssignment_5_in_rule__BrainfuckProgram__Group__5__Impl1602 = new BitSet(new long[]{0x000000004005F812L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group__6__Impl_in_rule__BrainfuckProgram__Group__61633 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__BrainfuckProgram__Group__6__Impl1661 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group_3__0__Impl_in_rule__BrainfuckProgram__Group_3__01706 = new BitSet(new long[]{0x0000000000400002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group_3__1_in_rule__BrainfuckProgram__Group_3__01709 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__BrainfuckProgram__Group_3__0__Impl1737 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group_3__1__Impl_in_rule__BrainfuckProgram__Group_3__11768 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__SymbolsAssignment_3_1_in_rule__BrainfuckProgram__Group_3__1__Impl1795 = new BitSet(new long[]{0x0000000000400002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group_4__0__Impl_in_rule__BrainfuckProgram__Group_4__01830 = new BitSet(new long[]{0x0000000003000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group_4__1_in_rule__BrainfuckProgram__Group_4__01833 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__BrainfuckProgram__Group_4__0__Impl1861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__Group_4__1__Impl_in_rule__BrainfuckProgram__Group_4__11892 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BrainfuckProgram__MacrosAssignment_4_1_in_rule__BrainfuckProgram__Group_4__1__Impl1919 = new BitSet(new long[]{0x0000000003000002L});
    public static final BitSet FOLLOW_rule__SymbolDef__Group__0__Impl_in_rule__SymbolDef__Group__01954 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__SymbolDef__Group__1_in_rule__SymbolDef__Group__01957 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__SymbolDef__Group__0__Impl1985 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SymbolDef__Group__1__Impl_in_rule__SymbolDef__Group__12016 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__SymbolDef__Group__2_in_rule__SymbolDef__Group__12019 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SymbolDef__NameAssignment_1_in_rule__SymbolDef__Group__1__Impl2046 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SymbolDef__Group__2__Impl_in_rule__SymbolDef__Group__22076 = new BitSet(new long[]{0x0000000000001820L});
    public static final BitSet FOLLOW_rule__SymbolDef__Group__3_in_rule__SymbolDef__Group__22079 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__SymbolDef__Group__2__Impl2107 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SymbolDef__Group__3__Impl_in_rule__SymbolDef__Group__32138 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SymbolDef__ValueAssignment_3_in_rule__SymbolDef__Group__3__Impl2165 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Region__Group__0__Impl_in_rule__Region__Group__02203 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Region__Group__1_in_rule__Region__Group__02206 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Region__Group__0__Impl2234 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Region__Group__1__Impl_in_rule__Region__Group__12265 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_rule__Region__Group__2_in_rule__Region__Group__12268 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Region__NameAssignment_1_in_rule__Region__Group__1__Impl2295 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Region__Group__2__Impl_in_rule__Region__Group__22325 = new BitSet(new long[]{0x0000000003080000L});
    public static final BitSet FOLLOW_rule__Region__Group__3_in_rule__Region__Group__22328 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__Region__Group__2__Impl2356 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Region__Group__3__Impl_in_rule__Region__Group__32387 = new BitSet(new long[]{0x0000000000080000L});
    public static final BitSet FOLLOW_rule__Region__Group__4_in_rule__Region__Group__32390 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Region__ElementsAssignment_3_in_rule__Region__Group__3__Impl2417 = new BitSet(new long[]{0x0000000003000002L});
    public static final BitSet FOLLOW_rule__Region__Group__4__Impl_in_rule__Region__Group__42448 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__Region__Group__4__Impl2476 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__Group__0__Impl_in_rule__MacroDef__Group__02517 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__MacroDef__Group__1_in_rule__MacroDef__Group__02520 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__MacroDef__Group__0__Impl2548 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__Group__1__Impl_in_rule__MacroDef__Group__12579 = new BitSet(new long[]{0x0000000004040000L});
    public static final BitSet FOLLOW_rule__MacroDef__Group__2_in_rule__MacroDef__Group__12582 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__NameAssignment_1_in_rule__MacroDef__Group__1__Impl2609 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__Group__2__Impl_in_rule__MacroDef__Group__22639 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_rule__MacroDef__Group__3_in_rule__MacroDef__Group__22642 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__Group_2__0_in_rule__MacroDef__Group__2__Impl2669 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__Group__3__Impl_in_rule__MacroDef__Group__32700 = new BitSet(new long[]{0x00000000400DF810L});
    public static final BitSet FOLLOW_rule__MacroDef__Group__4_in_rule__MacroDef__Group__32703 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__MacroDef__Group__3__Impl2731 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__Group__4__Impl_in_rule__MacroDef__Group__42762 = new BitSet(new long[]{0x0000000000080000L});
    public static final BitSet FOLLOW_rule__MacroDef__Group__5_in_rule__MacroDef__Group__42765 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__StmtsAssignment_4_in_rule__MacroDef__Group__4__Impl2792 = new BitSet(new long[]{0x000000004005F812L});
    public static final BitSet FOLLOW_rule__MacroDef__Group__5__Impl_in_rule__MacroDef__Group__52823 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__MacroDef__Group__5__Impl2851 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__Group_2__0__Impl_in_rule__MacroDef__Group_2__02894 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_rule__MacroDef__Group_2__1_in_rule__MacroDef__Group_2__02897 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__MacroDef__Group_2__0__Impl2925 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__Group_2__1__Impl_in_rule__MacroDef__Group_2__12956 = new BitSet(new long[]{0x0000000008008000L});
    public static final BitSet FOLLOW_rule__MacroDef__Group_2__2_in_rule__MacroDef__Group_2__12959 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__ParamsAssignment_2_1_in_rule__MacroDef__Group_2__1__Impl2986 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__Group_2__2__Impl_in_rule__MacroDef__Group_2__23016 = new BitSet(new long[]{0x0000000008000000L});
    public static final BitSet FOLLOW_rule__MacroDef__Group_2__3_in_rule__MacroDef__Group_2__23019 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__Group_2_2__0_in_rule__MacroDef__Group_2__2__Impl3046 = new BitSet(new long[]{0x0000000000008002L});
    public static final BitSet FOLLOW_rule__MacroDef__Group_2__3__Impl_in_rule__MacroDef__Group_2__33077 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__MacroDef__Group_2__3__Impl3105 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__Group_2_2__0__Impl_in_rule__MacroDef__Group_2_2__03144 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_rule__MacroDef__Group_2_2__1_in_rule__MacroDef__Group_2_2__03147 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__MacroDef__Group_2_2__0__Impl3175 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__Group_2_2__1__Impl_in_rule__MacroDef__Group_2_2__13206 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroDef__ParamsAssignment_2_2_1_in_rule__MacroDef__Group_2_2__1__Impl3233 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ParamDef__Group__0__Impl_in_rule__ParamDef__Group__03267 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__ParamDef__Group__1_in_rule__ParamDef__Group__03270 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__ParamDef__Group__0__Impl3298 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ParamDef__Group__1__Impl_in_rule__ParamDef__Group__13329 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__ParamDef__NameAssignment_1_in_rule__ParamDef__Group__1__Impl3356 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AbstractStmt__Group__0__Impl_in_rule__AbstractStmt__Group__03390 = new BitSet(new long[]{0x0000000020000002L});
    public static final BitSet FOLLOW_rule__AbstractStmt__Group__1_in_rule__AbstractStmt__Group__03393 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AbstractStmt__Alternatives_0_in_rule__AbstractStmt__Group__0__Impl3420 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AbstractStmt__Group__1__Impl_in_rule__AbstractStmt__Group__13450 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AbstractStmt__Group_1__0_in_rule__AbstractStmt__Group__1__Impl3477 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AbstractStmt__Group_1__0__Impl_in_rule__AbstractStmt__Group_1__03512 = new BitSet(new long[]{0x0000000000001830L});
    public static final BitSet FOLLOW_rule__AbstractStmt__Group_1__1_in_rule__AbstractStmt__Group_1__03515 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__AbstractStmt__Group_1__0__Impl3543 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AbstractStmt__Group_1__1__Impl_in_rule__AbstractStmt__Group_1__13574 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__AbstractStmt__RepeatAssignment_1_1_in_rule__AbstractStmt__Group_1__1__Impl3601 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LoopStmt__Group__0__Impl_in_rule__LoopStmt__Group__03635 = new BitSet(new long[]{0x00000000C005F810L});
    public static final BitSet FOLLOW_rule__LoopStmt__Group__1_in_rule__LoopStmt__Group__03638 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_rule__LoopStmt__Group__0__Impl3666 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LoopStmt__Group__1__Impl_in_rule__LoopStmt__Group__13697 = new BitSet(new long[]{0x00000000C005F810L});
    public static final BitSet FOLLOW_rule__LoopStmt__Group__2_in_rule__LoopStmt__Group__13700 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LoopStmt__Group__2__Impl_in_rule__LoopStmt__Group__23758 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_rule__LoopStmt__Group__3_in_rule__LoopStmt__Group__23761 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__LoopStmt__StmtsAssignment_2_in_rule__LoopStmt__Group__2__Impl3788 = new BitSet(new long[]{0x000000004005F812L});
    public static final BitSet FOLLOW_rule__LoopStmt__Group__3__Impl_in_rule__LoopStmt__Group__33819 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__LoopStmt__Group__3__Impl3847 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroCall__Group__0__Impl_in_rule__MacroCall__Group__03886 = new BitSet(new long[]{0x0000000004000002L});
    public static final BitSet FOLLOW_rule__MacroCall__Group__1_in_rule__MacroCall__Group__03889 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroCall__MacroAssignment_0_in_rule__MacroCall__Group__0__Impl3916 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroCall__Group__1__Impl_in_rule__MacroCall__Group__13946 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroCall__Group_1__0_in_rule__MacroCall__Group__1__Impl3973 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroCall__Group_1__0__Impl_in_rule__MacroCall__Group_1__04008 = new BitSet(new long[]{0x0000000000001830L});
    public static final BitSet FOLLOW_rule__MacroCall__Group_1__1_in_rule__MacroCall__Group_1__04011 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__MacroCall__Group_1__0__Impl4039 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroCall__Group_1__1__Impl_in_rule__MacroCall__Group_1__14070 = new BitSet(new long[]{0x0000000008008000L});
    public static final BitSet FOLLOW_rule__MacroCall__Group_1__2_in_rule__MacroCall__Group_1__14073 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroCall__ActualsAssignment_1_1_in_rule__MacroCall__Group_1__1__Impl4100 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroCall__Group_1__2__Impl_in_rule__MacroCall__Group_1__24130 = new BitSet(new long[]{0x0000000008000000L});
    public static final BitSet FOLLOW_rule__MacroCall__Group_1__3_in_rule__MacroCall__Group_1__24133 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroCall__Group_1_2__0_in_rule__MacroCall__Group_1__2__Impl4160 = new BitSet(new long[]{0x0000000000008002L});
    public static final BitSet FOLLOW_rule__MacroCall__Group_1__3__Impl_in_rule__MacroCall__Group_1__34191 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__MacroCall__Group_1__3__Impl4219 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroCall__Group_1_2__0__Impl_in_rule__MacroCall__Group_1_2__04258 = new BitSet(new long[]{0x0000000000001830L});
    public static final BitSet FOLLOW_rule__MacroCall__Group_1_2__1_in_rule__MacroCall__Group_1_2__04261 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__MacroCall__Group_1_2__0__Impl4289 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroCall__Group_1_2__1__Impl_in_rule__MacroCall__Group_1_2__14320 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__MacroCall__ActualsAssignment_1_2_1_in_rule__MacroCall__Group_1_2__1__Impl4347 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SignedInt__Group__0__Impl_in_rule__SignedInt__Group__04381 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__SignedInt__Group__1_in_rule__SignedInt__Group__04384 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SignedInt__SignAssignment_0_in_rule__SignedInt__Group__0__Impl4411 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SignedInt__Group__1__Impl_in_rule__SignedInt__Group__14442 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SignedInt__ValueAssignment_1_in_rule__SignedInt__Group__1__Impl4469 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BlockStmt__Group__0__Impl_in_rule__BlockStmt__Group__04503 = new BitSet(new long[]{0x00000000400DF810L});
    public static final BitSet FOLLOW_rule__BlockStmt__Group__1_in_rule__BlockStmt__Group__04506 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__BlockStmt__Group__0__Impl4534 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BlockStmt__Group__1__Impl_in_rule__BlockStmt__Group__14565 = new BitSet(new long[]{0x0000000000080000L});
    public static final BitSet FOLLOW_rule__BlockStmt__Group__2_in_rule__BlockStmt__Group__14568 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BlockStmt__StmtsAssignment_1_in_rule__BlockStmt__Group__1__Impl4595 = new BitSet(new long[]{0x000000004005F812L});
    public static final BitSet FOLLOW_rule__BlockStmt__Group__2__Impl_in_rule__BlockStmt__Group__24626 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__BlockStmt__Group__2__Impl4654 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__BrainfuckProgram__NameAssignment_14696 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSymbolDef_in_rule__BrainfuckProgram__SymbolsAssignment_3_14727 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractMacroDef_in_rule__BrainfuckProgram__MacrosAssignment_4_14758 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractStmt_in_rule__BrainfuckProgram__StmtsAssignment_54789 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__SymbolDef__NameAssignment_14820 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSignedInt_in_rule__SymbolDef__ValueAssignment_34851 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Region__NameAssignment_14882 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractMacroDef_in_rule__Region__ElementsAssignment_34913 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__MacroDef__NameAssignment_14944 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleParamDef_in_rule__MacroDef__ParamsAssignment_2_14975 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleParamDef_in_rule__MacroDef__ParamsAssignment_2_2_15006 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractStmt_in_rule__MacroDef__StmtsAssignment_45037 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__ParamDef__NameAssignment_15068 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBfValue_in_rule__AbstractStmt__RepeatAssignment_1_15099 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSimpleStmtKind_in_rule__SimpleStmt__KindAssignment5130 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractStmt_in_rule__LoopStmt__StmtsAssignment_25161 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__MacroCall__MacroAssignment_05196 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBfValue_in_rule__MacroCall__ActualsAssignment_1_15231 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBfValue_in_rule__MacroCall__ActualsAssignment_1_2_15262 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSignedInt_in_rule__BfValue__ValAssignment_05293 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__BfValue__RefAssignment_15328 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__SignedInt__SignAlternatives_0_0_in_rule__SignedInt__SignAssignment_05363 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_INT_in_rule__SignedInt__ValueAssignment_15396 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAbstractStmt_in_rule__BlockStmt__StmtsAssignment_15427 = new BitSet(new long[]{0x0000000000000002L});

}